From 87684f9549a8ea4e2fa7b4c6ab69ded73b34b991 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 25 May 2001 20:41:46 +0000 Subject: [PATCH] get sizes an icon set can render without falling back to missing image 2001-05-25 Havoc Pennington * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon set can render without falling back to missing image icon * gtk/gtktextview.c (gtk_text_view_size_request): request full size of text, instead of random values * gtk/gtktreeview.c (gtk_tree_view_size_request): request full size of tree view, instead of random values * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback image in an appropriate size * gtk/gtkstock.h: Rename the stock items including _BUTTON_, etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ Throughout: fix GTK_STOCK_BUTTON_ instances * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: Add a bunch of new stock items/icons * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): new function, convenience for inserting columns with a data func * gtk/gtkiconfactory.c: keep a list of all existing icon factories (_gtk_icon_factory_list_ids): use list of all factories to generate a list of all known IDs * gtk/gtkstock.c (gtk_stock_list_ids): replace gtk_stock_list_items() with a function that returns all IDs known including those for GtkIconFactory. --- ChangeLog | 34 ++ ChangeLog.pre-2-0 | 34 ++ ChangeLog.pre-2-10 | 34 ++ ChangeLog.pre-2-2 | 34 ++ ChangeLog.pre-2-4 | 34 ++ ChangeLog.pre-2-6 | 34 ++ ChangeLog.pre-2-8 | 34 ++ demos/gtk-demo/Makefile.am | 1 + demos/gtk-demo/button_box.c | 4 +- demos/gtk-demo/dialog.c | 2 +- demos/gtk-demo/sizegroup.c | 2 +- docs/reference/gtk/gtk-sections.txt | 69 +++- docs/reference/gtk/tmpl/gtk-unused.sgml | 43 ++ docs/reference/gtk/tmpl/gtkstock.sgml | 375 +++++++++++++++++- gtk/gtkbutton.c | 4 +- gtk/gtkcolorseldialog.c | 4 +- gtk/gtkdialog.c | 6 +- gtk/gtkfilesel.c | 4 +- gtk/gtkfontsel.c | 6 +- gtk/gtkiconfactory.c | 314 ++++++++++++++- gtk/gtkiconfactory.h | 4 + gtk/gtkmessagedialog.c | 14 +- gtk/gtkstock.c | 111 +++++- gtk/gtkstock.h | 72 +++- gtk/gtktextview.c | 3 + gtk/gtktreeview.c | 47 ++- gtk/gtktreeview.h | 7 + gtk/gtkwidget.c | 2 +- gtk/stock-icons/Makefile.am | 176 ++++++-- gtk/stock-icons/stock_add.png | Bin 0 -> 505 bytes gtk/stock-icons/stock_add_24.png | Bin 0 -> 505 bytes gtk/stock-icons/stock_align_center.png | Bin 0 -> 259 bytes gtk/stock-icons/stock_align_center_24.png | Bin 0 -> 259 bytes gtk/stock-icons/stock_align_justify.png | Bin 0 -> 283 bytes gtk/stock-icons/stock_align_justify_24.png | Bin 0 -> 283 bytes gtk/stock-icons/stock_align_left.png | Bin 0 -> 260 bytes gtk/stock-icons/stock_align_left_24.png | Bin 0 -> 260 bytes gtk/stock-icons/stock_align_right.png | Bin 0 -> 260 bytes gtk/stock-icons/stock_align_right_24.png | Bin 0 -> 260 bytes gtk/stock-icons/stock_bottom.png | Bin 0 -> 540 bytes gtk/stock-icons/stock_bottom_24.png | Bin 0 -> 540 bytes gtk/stock-icons/stock_cdrom.png | Bin 0 -> 806 bytes gtk/stock-icons/stock_cdrom_24.png | Bin 0 -> 806 bytes gtk/stock-icons/stock_clear.png | Bin 0 -> 791 bytes gtk/stock-icons/stock_clear_24.png | Bin 0 -> 791 bytes gtk/stock-icons/stock_colorselector.png | Bin 0 -> 592 bytes gtk/stock-icons/stock_colorselector_24.png | Bin 0 -> 592 bytes gtk/stock-icons/stock_convert.png | Bin 0 -> 619 bytes gtk/stock-icons/stock_convert_24.png | Bin 0 -> 619 bytes gtk/stock-icons/stock_copy.png | Bin 0 -> 603 bytes gtk/stock-icons/stock_copy_24.png | Bin 0 -> 603 bytes gtk/stock-icons/stock_cut.png | Bin 0 -> 291 bytes gtk/stock-icons/stock_cut_24.png | Bin 0 -> 291 bytes gtk/stock-icons/stock_down_arrow.png | Bin 0 -> 448 bytes gtk/stock-icons/stock_down_arrow_24.png | Bin 0 -> 448 bytes gtk/stock-icons/stock_exec.png | Bin 0 -> 672 bytes gtk/stock-icons/stock_exec_24.png | Bin 0 -> 672 bytes gtk/stock-icons/stock_first.png | Bin 0 -> 591 bytes gtk/stock-icons/stock_first_24.png | Bin 0 -> 591 bytes gtk/stock-icons/stock_font.png | Bin 0 -> 648 bytes gtk/stock-icons/stock_font_24.png | Bin 0 -> 648 bytes gtk/stock-icons/stock_home.png | Bin 0 -> 555 bytes gtk/stock-icons/stock_home_24.png | Bin 0 -> 555 bytes gtk/stock-icons/stock_index.png | Bin 0 -> 554 bytes gtk/stock-icons/stock_index_24.png | Bin 0 -> 554 bytes gtk/stock-icons/stock_jump_to.png | Bin 0 -> 611 bytes gtk/stock-icons/stock_jump_to_24.png | Bin 0 -> 611 bytes gtk/stock-icons/stock_last.png | Bin 0 -> 576 bytes gtk/stock-icons/stock_last_24.png | Bin 0 -> 576 bytes gtk/stock-icons/stock_left_arrow.png | Bin 0 -> 566 bytes gtk/stock-icons/stock_left_arrow_24.png | Bin 0 -> 566 bytes gtk/stock-icons/stock_menu_print_preview.png | Bin 0 -> 636 bytes .../stock_menu_sort_descending.png | Bin 0 -> 302 bytes gtk/stock-icons/stock_paste.png | Bin 0 -> 803 bytes gtk/stock-icons/stock_paste_24.png | Bin 0 -> 803 bytes gtk/stock-icons/stock_preferences.png | Bin 0 -> 764 bytes gtk/stock-icons/stock_preferences_24.png | Bin 0 -> 764 bytes gtk/stock-icons/stock_print.png | Bin 0 -> 965 bytes gtk/stock-icons/stock_print_24.png | Bin 0 -> 965 bytes gtk/stock-icons/stock_print_preview.png | Bin 0 -> 900 bytes gtk/stock-icons/stock_print_preview_16.png | Bin 0 -> 636 bytes gtk/stock-icons/stock_print_preview_24.png | Bin 0 -> 900 bytes gtk/stock-icons/stock_properties.png | Bin 0 -> 932 bytes gtk/stock-icons/stock_properties_24.png | Bin 0 -> 932 bytes gtk/stock-icons/stock_redo.png | Bin 0 -> 354 bytes gtk/stock-icons/stock_redo_24.png | Bin 0 -> 354 bytes gtk/stock-icons/stock_refresh.png | Bin 0 -> 440 bytes gtk/stock-icons/stock_refresh_24.png | Bin 0 -> 440 bytes gtk/stock-icons/stock_remove.png | Bin 0 -> 531 bytes gtk/stock-icons/stock_remove_24.png | Bin 0 -> 531 bytes gtk/stock-icons/stock_revert.png | Bin 0 -> 879 bytes gtk/stock-icons/stock_revert_24.png | Bin 0 -> 879 bytes gtk/stock-icons/stock_right_arrow.png | Bin 0 -> 551 bytes gtk/stock-icons/stock_right_arrow_24.png | Bin 0 -> 551 bytes gtk/stock-icons/stock_save_as.png | Bin 0 -> 879 bytes gtk/stock-icons/stock_save_as_24.png | Bin 0 -> 879 bytes gtk/stock-icons/stock_search.png | Bin 0 -> 945 bytes gtk/stock-icons/stock_search_24.png | Bin 0 -> 945 bytes gtk/stock-icons/stock_search_replace.png | Bin 0 -> 1004 bytes gtk/stock-icons/stock_search_replace_24.png | Bin 0 -> 1004 bytes gtk/stock-icons/stock_sort_ascending.png | Bin 0 -> 353 bytes gtk/stock-icons/stock_sort_ascending_24.png | Bin 0 -> 353 bytes gtk/stock-icons/stock_sort_descending.png | Bin 0 -> 371 bytes gtk/stock-icons/stock_sort_descending_16.png | Bin 0 -> 302 bytes gtk/stock-icons/stock_sort_descending_24.png | Bin 0 -> 371 bytes gtk/stock-icons/stock_spellcheck.png | Bin 0 -> 403 bytes gtk/stock-icons/stock_spellcheck_24.png | Bin 0 -> 403 bytes gtk/stock-icons/stock_stop.png | Bin 0 -> 850 bytes gtk/stock-icons/stock_stop_24.png | Bin 0 -> 850 bytes gtk/stock-icons/stock_text_bold.png | Bin 0 -> 278 bytes gtk/stock-icons/stock_text_bold_24.png | Bin 0 -> 278 bytes gtk/stock-icons/stock_text_italic.png | Bin 0 -> 277 bytes gtk/stock-icons/stock_text_italic_24.png | Bin 0 -> 277 bytes gtk/stock-icons/stock_text_strikeout.png | Bin 0 -> 289 bytes gtk/stock-icons/stock_text_strikeout_24.png | Bin 0 -> 289 bytes .../stock_text_strikethrough_24.png | Bin 0 -> 289 bytes gtk/stock-icons/stock_text_underline.png | Bin 0 -> 270 bytes gtk/stock-icons/stock_text_underline_24.png | Bin 0 -> 270 bytes gtk/stock-icons/stock_top.png | Bin 0 -> 455 bytes gtk/stock-icons/stock_top_24.png | Bin 0 -> 455 bytes gtk/stock-icons/stock_trash.png | Bin 0 -> 704 bytes gtk/stock-icons/stock_trash_24.png | Bin 0 -> 704 bytes gtk/stock-icons/stock_undelete.png | Bin 0 -> 857 bytes gtk/stock-icons/stock_undelete_24.png | Bin 0 -> 857 bytes gtk/stock-icons/stock_undo.png | Bin 0 -> 351 bytes gtk/stock-icons/stock_undo_24.png | Bin 0 -> 351 bytes gtk/stock-icons/stock_up_arrow.png | Bin 0 -> 384 bytes gtk/stock-icons/stock_up_arrow_24.png | Bin 0 -> 384 bytes gtk/stock-icons/stock_zoom_1.png | Bin 0 -> 849 bytes gtk/stock-icons/stock_zoom_1_24.png | Bin 0 -> 849 bytes gtk/stock-icons/stock_zoom_fit.png | Bin 0 -> 857 bytes gtk/stock-icons/stock_zoom_fit_24.png | Bin 0 -> 857 bytes gtk/stock-icons/stock_zoom_in.png | Bin 0 -> 821 bytes gtk/stock-icons/stock_zoom_in_24.png | Bin 0 -> 821 bytes gtk/stock-icons/stock_zoom_out.png | Bin 0 -> 814 bytes gtk/stock-icons/stock_zoom_out_24.png | Bin 0 -> 814 bytes tests/testgtk.c | 8 +- tests/testtext.c | 2 +- 138 files changed, 1382 insertions(+), 136 deletions(-) create mode 100644 gtk/stock-icons/stock_add.png create mode 100644 gtk/stock-icons/stock_add_24.png create mode 100644 gtk/stock-icons/stock_align_center.png create mode 100644 gtk/stock-icons/stock_align_center_24.png create mode 100644 gtk/stock-icons/stock_align_justify.png create mode 100644 gtk/stock-icons/stock_align_justify_24.png create mode 100644 gtk/stock-icons/stock_align_left.png create mode 100644 gtk/stock-icons/stock_align_left_24.png create mode 100644 gtk/stock-icons/stock_align_right.png create mode 100644 gtk/stock-icons/stock_align_right_24.png create mode 100644 gtk/stock-icons/stock_bottom.png create mode 100644 gtk/stock-icons/stock_bottom_24.png create mode 100644 gtk/stock-icons/stock_cdrom.png create mode 100644 gtk/stock-icons/stock_cdrom_24.png create mode 100644 gtk/stock-icons/stock_clear.png create mode 100644 gtk/stock-icons/stock_clear_24.png create mode 100644 gtk/stock-icons/stock_colorselector.png create mode 100644 gtk/stock-icons/stock_colorselector_24.png create mode 100644 gtk/stock-icons/stock_convert.png create mode 100644 gtk/stock-icons/stock_convert_24.png create mode 100644 gtk/stock-icons/stock_copy.png create mode 100644 gtk/stock-icons/stock_copy_24.png create mode 100644 gtk/stock-icons/stock_cut.png create mode 100644 gtk/stock-icons/stock_cut_24.png create mode 100644 gtk/stock-icons/stock_down_arrow.png create mode 100644 gtk/stock-icons/stock_down_arrow_24.png create mode 100644 gtk/stock-icons/stock_exec.png create mode 100644 gtk/stock-icons/stock_exec_24.png create mode 100644 gtk/stock-icons/stock_first.png create mode 100644 gtk/stock-icons/stock_first_24.png create mode 100644 gtk/stock-icons/stock_font.png create mode 100644 gtk/stock-icons/stock_font_24.png create mode 100644 gtk/stock-icons/stock_home.png create mode 100644 gtk/stock-icons/stock_home_24.png create mode 100644 gtk/stock-icons/stock_index.png create mode 100644 gtk/stock-icons/stock_index_24.png create mode 100644 gtk/stock-icons/stock_jump_to.png create mode 100644 gtk/stock-icons/stock_jump_to_24.png create mode 100644 gtk/stock-icons/stock_last.png create mode 100644 gtk/stock-icons/stock_last_24.png create mode 100644 gtk/stock-icons/stock_left_arrow.png create mode 100644 gtk/stock-icons/stock_left_arrow_24.png create mode 100644 gtk/stock-icons/stock_menu_print_preview.png create mode 100644 gtk/stock-icons/stock_menu_sort_descending.png create mode 100644 gtk/stock-icons/stock_paste.png create mode 100644 gtk/stock-icons/stock_paste_24.png create mode 100644 gtk/stock-icons/stock_preferences.png create mode 100644 gtk/stock-icons/stock_preferences_24.png create mode 100644 gtk/stock-icons/stock_print.png create mode 100644 gtk/stock-icons/stock_print_24.png create mode 100644 gtk/stock-icons/stock_print_preview.png create mode 100644 gtk/stock-icons/stock_print_preview_16.png create mode 100644 gtk/stock-icons/stock_print_preview_24.png create mode 100644 gtk/stock-icons/stock_properties.png create mode 100644 gtk/stock-icons/stock_properties_24.png create mode 100644 gtk/stock-icons/stock_redo.png create mode 100644 gtk/stock-icons/stock_redo_24.png create mode 100644 gtk/stock-icons/stock_refresh.png create mode 100644 gtk/stock-icons/stock_refresh_24.png create mode 100644 gtk/stock-icons/stock_remove.png create mode 100644 gtk/stock-icons/stock_remove_24.png create mode 100644 gtk/stock-icons/stock_revert.png create mode 100644 gtk/stock-icons/stock_revert_24.png create mode 100644 gtk/stock-icons/stock_right_arrow.png create mode 100644 gtk/stock-icons/stock_right_arrow_24.png create mode 100644 gtk/stock-icons/stock_save_as.png create mode 100644 gtk/stock-icons/stock_save_as_24.png create mode 100644 gtk/stock-icons/stock_search.png create mode 100644 gtk/stock-icons/stock_search_24.png create mode 100644 gtk/stock-icons/stock_search_replace.png create mode 100644 gtk/stock-icons/stock_search_replace_24.png create mode 100644 gtk/stock-icons/stock_sort_ascending.png create mode 100644 gtk/stock-icons/stock_sort_ascending_24.png create mode 100644 gtk/stock-icons/stock_sort_descending.png create mode 100644 gtk/stock-icons/stock_sort_descending_16.png create mode 100644 gtk/stock-icons/stock_sort_descending_24.png create mode 100644 gtk/stock-icons/stock_spellcheck.png create mode 100644 gtk/stock-icons/stock_spellcheck_24.png create mode 100644 gtk/stock-icons/stock_stop.png create mode 100644 gtk/stock-icons/stock_stop_24.png create mode 100644 gtk/stock-icons/stock_text_bold.png create mode 100644 gtk/stock-icons/stock_text_bold_24.png create mode 100644 gtk/stock-icons/stock_text_italic.png create mode 100644 gtk/stock-icons/stock_text_italic_24.png create mode 100644 gtk/stock-icons/stock_text_strikeout.png create mode 100644 gtk/stock-icons/stock_text_strikeout_24.png create mode 100644 gtk/stock-icons/stock_text_strikethrough_24.png create mode 100644 gtk/stock-icons/stock_text_underline.png create mode 100644 gtk/stock-icons/stock_text_underline_24.png create mode 100644 gtk/stock-icons/stock_top.png create mode 100644 gtk/stock-icons/stock_top_24.png create mode 100644 gtk/stock-icons/stock_trash.png create mode 100644 gtk/stock-icons/stock_trash_24.png create mode 100644 gtk/stock-icons/stock_undelete.png create mode 100644 gtk/stock-icons/stock_undelete_24.png create mode 100644 gtk/stock-icons/stock_undo.png create mode 100644 gtk/stock-icons/stock_undo_24.png create mode 100644 gtk/stock-icons/stock_up_arrow.png create mode 100644 gtk/stock-icons/stock_up_arrow_24.png create mode 100644 gtk/stock-icons/stock_zoom_1.png create mode 100644 gtk/stock-icons/stock_zoom_1_24.png create mode 100644 gtk/stock-icons/stock_zoom_fit.png create mode 100644 gtk/stock-icons/stock_zoom_fit_24.png create mode 100644 gtk/stock-icons/stock_zoom_in.png create mode 100644 gtk/stock-icons/stock_zoom_in_24.png create mode 100644 gtk/stock-icons/stock_zoom_out.png create mode 100644 gtk/stock-icons/stock_zoom_out_24.png diff --git a/ChangeLog b/ChangeLog index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 95f96d091d..f96569ce4f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,37 @@ +2001-05-25 Havoc Pennington + + * gtk/gtkiconfactory.c (gtk_icon_set_get_sizes): get sizes an icon + set can render without falling back to missing image icon + + * gtk/gtktextview.c (gtk_text_view_size_request): request full + size of text, instead of random values + + * gtk/gtktreeview.c (gtk_tree_view_size_request): request full + size of tree view, instead of random values + + * gtk/gtkiconfactory.c (gtk_icon_set_render_icon): render fallback + image in an appropriate size + + * gtk/gtkstock.h: Rename the stock items including _BUTTON_, + etc. not to include that. i.e. s/GTK_STOCK_BUTTON_OK/GTK_STOCK_OK/ + + Throughout: fix GTK_STOCK_BUTTON_ instances + + * gtk/gtkstock.h, gtk/gtkstock.c, gtk/gtkiconfactory.h, + gtk/gtkiconfactory.c, gtk/stock-icons/Makefile.am: + Add a bunch of new stock items/icons + + * gtk/gtktreeview.c (gtk_tree_view_insert_column_with_data_func): + new function, convenience for inserting columns with a data func + + * gtk/gtkiconfactory.c: keep a list of all existing icon factories + (_gtk_icon_factory_list_ids): use list of all factories to + generate a list of all known IDs + + * gtk/gtkstock.c (gtk_stock_list_ids): replace + gtk_stock_list_items() with a function that returns all IDs known + including those for GtkIconFactory. + 2001-05-25 Hans Breuer * gdk/win32/gdkgc-win32.c : made fil mode GDK_STIPPLED actually diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index 228296aec0..a25c647dd6 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -15,6 +15,7 @@ demos = @STRIP_BEGIN@ \ panes.c \ pixbufs.c \ sizegroup.c \ + stock_browser.c \ textview.c \ @STRIP_END@ diff --git a/demos/gtk-demo/button_box.c b/demos/gtk-demo/button_box.c index 286610ea3b..f4527a8331 100644 --- a/demos/gtk-demo/button_box.c +++ b/demos/gtk-demo/button_box.c @@ -28,10 +28,10 @@ create_bbox (gint horizontal, gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout); gtk_box_set_spacing (GTK_BOX (bbox), spacing); - button = gtk_button_new_from_stock (GTK_STOCK_BUTTON_OK); + button = gtk_button_new_from_stock (GTK_STOCK_OK); gtk_container_add (GTK_CONTAINER (bbox), button); - button = gtk_button_new_from_stock (GTK_STOCK_BUTTON_CANCEL); + button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); gtk_container_add (GTK_CONTAINER (bbox), button); button = gtk_button_new_from_stock (GTK_STOCK_HELP); diff --git a/demos/gtk-demo/dialog.c b/demos/gtk-demo/dialog.c index 0e99520162..92358b973a 100644 --- a/demos/gtk-demo/dialog.c +++ b/demos/gtk-demo/dialog.c @@ -44,7 +44,7 @@ interactive_dialog_clicked (GtkButton *button, dialog = gtk_dialog_new_with_buttons ("Interactive Dialog", GTK_WINDOW (window), GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c index 362ffcbc02..2bd3022e2b 100644 --- a/demos/gtk-demo/sizegroup.c +++ b/demos/gtk-demo/sizegroup.c @@ -110,7 +110,7 @@ do_sizegroup (void) { window = gtk_dialog_new_with_buttons ("GtkSizeGroup", NULL, 0, - GTK_STOCK_BUTTON_CLOSE, + GTK_STOCK_CLOSE, GTK_RESPONSE_NONE, NULL); gtk_window_set_resizeable (GTK_WINDOW (window), FALSE); diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt index ff80a8b7c2..b687e6129e 100644 --- a/docs/reference/gtk/gtk-sections.txt +++ b/docs/reference/gtk/gtk-sections.txt @@ -3784,26 +3784,77 @@ gtk_stock_add gtk_stock_add_static gtk_stock_item_copy gtk_stock_item_free -gtk_stock_list_items +gtk_stock_list_ids gtk_stock_lookup -GTK_STOCK_BUTTON_APPLY -GTK_STOCK_BUTTON_CANCEL -GTK_STOCK_BUTTON_CLOSE -GTK_STOCK_BUTTON_NO -GTK_STOCK_BUTTON_OK -GTK_STOCK_BUTTON_YES +GTK_STOCK_ADD +GTK_STOCK_APPLY +GTK_STOCK_BOLD +GTK_STOCK_CANCEL +GTK_STOCK_CDROM +GTK_STOCK_CLEAR +GTK_STOCK_CLOSE +GTK_STOCK_CONVERT +GTK_STOCK_COPY +GTK_STOCK_CUT +GTK_STOCK_DELETE GTK_STOCK_DIALOG_ERROR GTK_STOCK_DIALOG_INFO GTK_STOCK_DIALOG_QUESTION GTK_STOCK_DIALOG_WARNING +GTK_STOCK_EXECUTE +GTK_STOCK_FIND +GTK_STOCK_FIND_AND_REPLACE +GTK_STOCK_FLOPPY +GTK_STOCK_GOTO_BOTTOM +GTK_STOCK_GOTO_FIRST +GTK_STOCK_GOTO_LAST +GTK_STOCK_GOTO_TOP +GTK_STOCK_GO_BACK +GTK_STOCK_GO_DOWN +GTK_STOCK_GO_FORWARD +GTK_STOCK_GO_UP GTK_STOCK_HELP +GTK_STOCK_HOME +GTK_STOCK_INDEX +GTK_STOCK_ITALIC +GTK_STOCK_JUMP_TO +GTK_STOCK_JUSTIFY_CENTER +GTK_STOCK_JUSTIFY_FILL +GTK_STOCK_JUSTIFY_LEFT +GTK_STOCK_JUSTIFY_RIGHT +GTK_STOCK_MISSING_IMAGE GTK_STOCK_NEW +GTK_STOCK_NO +GTK_STOCK_OK GTK_STOCK_OPEN +GTK_STOCK_PASTE +GTK_STOCK_PREFERENCES +GTK_STOCK_PRINT +GTK_STOCK_PRINT_PREVIEW +GTK_STOCK_PROPERTIES GTK_STOCK_QUIT +GTK_STOCK_REDO +GTK_STOCK_REFRESH +GTK_STOCK_REMOVE +GTK_STOCK_REVERT_TO_SAVED GTK_STOCK_SAVE -GTK_STOCK_CLOSE -GTK_STOCK_MISSING_IMAGE +GTK_STOCK_SAVE_AS +GTK_STOCK_SELECT_COLOR +GTK_STOCK_SELECT_FONT +GTK_STOCK_SORT_ASCENDING +GTK_STOCK_SORT_DESCENDING +GTK_STOCK_SPELL_CHECK +GTK_STOCK_STOP +GTK_STOCK_STRIKETHROUGH +GTK_STOCK_UNDELETE +GTK_STOCK_UNDERLINE +GTK_STOCK_UNDO +GTK_STOCK_YES +GTK_STOCK_ZOOM_100 +GTK_STOCK_ZOOM_FIT +GTK_STOCK_ZOOM_IN +GTK_STOCK_ZOOM_OUT diff --git a/docs/reference/gtk/tmpl/gtk-unused.sgml b/docs/reference/gtk/tmpl/gtk-unused.sgml index ec5c6e497b..4861e73861 100644 --- a/docs/reference/gtk/tmpl/gtk-unused.sgml +++ b/docs/reference/gtk/tmpl/gtk-unused.sgml @@ -209,6 +209,42 @@ Get the array of signals defined for this object. @obj: the object to fetch the signals from. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A macro that returns a GList that contains the selection of the root tree of @obj. @@ -1467,6 +1503,13 @@ Creates a border around the arrows of a #GtkSpinButton. The type of border is de @spin_button: a #GtkSpinButton @shadow_type: the new border type. + + + + + +@Returns: + Private: print debugging information while doing a gtk_object_ref() or diff --git a/docs/reference/gtk/tmpl/gtkstock.sgml b/docs/reference/gtk/tmpl/gtkstock.sgml index 9fb8fe7640..f778b87bf1 100644 --- a/docs/reference/gtk/tmpl/gtkstock.sgml +++ b/docs/reference/gtk/tmpl/gtkstock.sgml @@ -64,7 +64,7 @@ Stock Items @item: - + @@ -82,42 +82,77 @@ Stock Items @Returns: - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -152,6 +187,90 @@ Stock Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -159,6 +278,69 @@ Stock Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -166,6 +348,20 @@ Stock Items + + + + + + + + + + + + + + @@ -173,6 +369,41 @@ Stock Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -180,6 +411,34 @@ Stock Items + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,14 +446,112 @@ Stock Items - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gtk/gtkbutton.c b/gtk/gtkbutton.c index 8cbe105569..69dc58390a 100644 --- a/gtk/gtkbutton.c +++ b/gtk/gtkbutton.c @@ -361,8 +361,8 @@ gtk_button_new_with_label (const gchar *label) * @returns: a new #GtkButton * * Creates a new #GtkButton containing the image and text from a stock item. - * Some stock ids have preprocessor macros like #GTK_STOCK_BUTTON_OK and - * #GTK_STOCK_BUTTON_APPLY. + * Some stock ids have preprocessor macros like #GTK_STOCK_OK and + * #GTK_STOCK_APPLY. **/ GtkWidget* gtk_button_new_from_stock (const gchar *stock_id) diff --git a/gtk/gtkcolorseldialog.c b/gtk/gtkcolorseldialog.c index a80f28e717..7dd1e97e6e 100644 --- a/gtk/gtkcolorseldialog.c +++ b/gtk/gtkcolorseldialog.c @@ -97,13 +97,13 @@ gtk_color_selection_dialog_init (GtkColorSelectionDialog *colorseldiag) action_area_button_box = GTK_DIALOG (colorseldiag)->action_area; colorseldiag->ok_button = gtk_dialog_add_button (GTK_DIALOG (colorseldiag), - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_widget_grab_default (colorseldiag->ok_button); colorseldiag->cancel_button = gtk_dialog_add_button (GTK_DIALOG (colorseldiag), - GTK_STOCK_BUTTON_CANCEL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); colorseldiag->help_button = gtk_dialog_add_button (GTK_DIALOG (colorseldiag), diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index c0f0ea1181..9e7e2ae68c 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -359,7 +359,7 @@ gtk_dialog_new_empty (const gchar *title, * (GTK_DIALOG_DESTROY_WITH_PARENT). After @flags, button * text/response ID pairs should be listed, with a NULL pointer ending * the list. Button text can be either a stock ID such as - * GTK_STOCK_BUTTON_OK, or some arbitrary text. A response ID can be + * #GTK_STOCK_OK, or some arbitrary text. A response ID can be * any positive number, or one of the values in the #GtkResponseType * enumeration. If the user clicks one of these dialog buttons, * #GtkDialog will emit the "response" signal with the corresponding @@ -375,9 +375,9 @@ gtk_dialog_new_empty (const gchar *title, * GtkWidget *dialog = gtk_dialog_new_with_buttons ("My dialog", * main_app_window, * GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - * GTK_STOCK_BUTTON_OK, + * GTK_STOCK_OK, * GTK_RESPONSE_ACCEPT, - * GTK_STOCK_BUTTON_CANCEL, + * GTK_STOCK_CANCEL, * GTK_RESPONSE_REJECT, * NULL); * diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 6da7f1eb23..4036bf4519 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -678,14 +678,14 @@ gtk_file_selection_init (GtkFileSelection *filesel) /* The OK button */ filesel->ok_button = gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_widget_grab_default (filesel->ok_button); /* The Cancel button */ filesel->cancel_button = gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_CANCEL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); /* The selection entry widget */ diff --git a/gtk/gtkfontsel.c b/gtk/gtkfontsel.c index c3e169df91..00ea3e9900 100644 --- a/gtk/gtkfontsel.c +++ b/gtk/gtkfontsel.c @@ -987,18 +987,18 @@ gtk_font_selection_dialog_init (GtkFontSelectionDialog *fontseldiag) fontseldiag->action_area = dialog->action_area; fontseldiag->ok_button = gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_widget_grab_default (fontseldiag->ok_button); fontseldiag->apply_button = gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_APPLY, + GTK_STOCK_APPLY, GTK_RESPONSE_APPLY); gtk_widget_hide (fontseldiag->apply_button); fontseldiag->cancel_button = gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_CANCEL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); gtk_window_set_title (GTK_WINDOW (fontseldiag), diff --git a/gtk/gtkiconfactory.c b/gtk/gtkiconfactory.c index 7a2ddbca46..117faeaace 100644 --- a/gtk/gtkiconfactory.c +++ b/gtk/gtkiconfactory.c @@ -33,6 +33,8 @@ #include #include +static GSList *all_icon_factories = NULL; + struct _GtkIconSource { /* Either filename or pixbuf can be NULL. If both are non-NULL, @@ -97,6 +99,7 @@ static void gtk_icon_factory_init (GtkIconFactory *factory) { factory->icons = g_hash_table_new (g_str_hash, g_str_equal); + all_icon_factories = g_slist_prepend (all_icon_factories, factory); } static void @@ -121,6 +124,8 @@ gtk_icon_factory_finalize (GObject *object) { GtkIconFactory *factory = GTK_ICON_FACTORY (object); + all_icon_factories = g_slist_remove (all_icon_factories, factory); + g_hash_table_foreach (factory->icons, free_icon_set, NULL); g_hash_table_destroy (factory->icons); @@ -335,6 +340,42 @@ sized_icon_set_from_inline (const guchar *inline_data, return set; } + +static GtkIconSet * +sized_with_fallback_icon_set_from_inline (const guchar *fallback_data, + const guchar *inline_data, + GtkIconSize size) +{ + GtkIconSet *set; + + GtkIconSource source = { NULL, NULL, 0, 0, 0, + TRUE, TRUE, FALSE }; + + source.size = size; + + set = gtk_icon_set_new (); + + source.pixbuf = gdk_pixbuf_new_from_inline (inline_data, FALSE, -1, NULL); + + g_assert (source.pixbuf); + + gtk_icon_set_add_source (set, &source); + + g_object_unref (G_OBJECT (source.pixbuf)); + + source.any_size = TRUE; + + source.pixbuf = gdk_pixbuf_new_from_inline (fallback_data, FALSE, -1, NULL); + + g_assert (source.pixbuf); + + gtk_icon_set_add_source (set, &source); + + g_object_unref (G_OBJECT (source.pixbuf)); + + return set; +} + static GtkIconSet * unsized_icon_set_from_inline (const guchar *inline_data) { @@ -372,6 +413,22 @@ add_sized (GtkIconFactory *factory, gtk_icon_set_unref (set); } +static void +add_sized_with_fallback (GtkIconFactory *factory, + const guchar *fallback_data, + const guchar *inline_data, + GtkIconSize size, + const gchar *stock_id) +{ + GtkIconSet *set; + + set = sized_with_fallback_icon_set_from_inline (fallback_data, inline_data, size); + + gtk_icon_factory_add (factory, stock_id, set); + + gtk_icon_set_unref (set); +} + static void add_unsized (GtkIconFactory *factory, const guchar *inline_data, @@ -391,26 +448,98 @@ get_default_icons (GtkIconFactory *factory) { /* KEEP IN SYNC with gtkstock.c */ + add_unsized (factory, MISSING_IMAGE_INLINE, GTK_STOCK_MISSING_IMAGE); + add_sized (factory, dialog_error, GTK_ICON_SIZE_DIALOG, GTK_STOCK_DIALOG_ERROR); add_sized (factory, dialog_info, GTK_ICON_SIZE_DIALOG, GTK_STOCK_DIALOG_INFO); add_sized (factory, dialog_question, GTK_ICON_SIZE_DIALOG, GTK_STOCK_DIALOG_QUESTION); add_sized (factory, dialog_warning, GTK_ICON_SIZE_DIALOG, GTK_STOCK_DIALOG_WARNING); - - add_sized (factory, stock_button_apply, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_APPLY); - add_sized (factory, stock_button_ok, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_OK); - add_sized (factory, stock_button_cancel, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_CANCEL); - add_sized (factory, stock_button_close, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_CLOSE); - add_sized (factory, stock_button_yes, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_YES); - add_sized (factory, stock_button_no, GTK_ICON_SIZE_BUTTON, GTK_STOCK_BUTTON_NO); - - add_unsized (factory, stock_close, GTK_STOCK_CLOSE); + + /* Only have button sizes */ + add_sized (factory, stock_button_apply, GTK_ICON_SIZE_BUTTON, GTK_STOCK_APPLY); + add_sized (factory, stock_button_cancel, GTK_ICON_SIZE_BUTTON, GTK_STOCK_CANCEL); + add_sized (factory, stock_button_no, GTK_ICON_SIZE_BUTTON, GTK_STOCK_NO); + add_sized (factory, stock_button_ok, GTK_ICON_SIZE_BUTTON, GTK_STOCK_OK); + add_sized (factory, stock_button_yes, GTK_ICON_SIZE_BUTTON, GTK_STOCK_YES); + + /* Generic + button sizes */ + add_sized_with_fallback (factory, + stock_close, + stock_button_close, + GTK_ICON_SIZE_BUTTON, + GTK_STOCK_CLOSE); + + /* Generic + menu sizes */ + + add_sized_with_fallback (factory, + stock_print_preview, + stock_menu_print_preview, + GTK_ICON_SIZE_MENU, + GTK_STOCK_PRINT_PREVIEW); + + add_sized_with_fallback (factory, + stock_sort_descending, + stock_menu_sort_descending, + GTK_ICON_SIZE_MENU, + GTK_STOCK_SORT_DESCENDING); + + /* Generic size only */ + + add_unsized (factory, stock_add, GTK_STOCK_ADD); + add_unsized (factory, stock_align_center, GTK_STOCK_JUSTIFY_CENTER); + add_unsized (factory, stock_align_justify, GTK_STOCK_JUSTIFY_FILL); + add_unsized (factory, stock_align_left, GTK_STOCK_JUSTIFY_LEFT); + add_unsized (factory, stock_align_right, GTK_STOCK_JUSTIFY_RIGHT); + add_unsized (factory, stock_bottom, GTK_STOCK_GOTO_BOTTOM); + add_unsized (factory, stock_cdrom, GTK_STOCK_CDROM); + add_unsized (factory, stock_clear, GTK_STOCK_CLEAR); + add_unsized (factory, stock_colorselector, GTK_STOCK_SELECT_COLOR); + add_unsized (factory, stock_convert, GTK_STOCK_CONVERT); + add_unsized (factory, stock_copy, GTK_STOCK_COPY); + add_unsized (factory, stock_cut, GTK_STOCK_CUT); + add_unsized (factory, stock_down_arrow, GTK_STOCK_GO_DOWN); + add_unsized (factory, stock_exec, GTK_STOCK_EXECUTE); add_unsized (factory, stock_exit, GTK_STOCK_QUIT); + add_unsized (factory, stock_first, GTK_STOCK_GOTO_FIRST); + add_unsized (factory, stock_font, GTK_STOCK_SELECT_FONT); add_unsized (factory, stock_help, GTK_STOCK_HELP); + add_unsized (factory, stock_home, GTK_STOCK_HOME); + add_unsized (factory, stock_index, GTK_STOCK_INDEX); + add_unsized (factory, stock_jump_to, GTK_STOCK_JUMP_TO); + add_unsized (factory, stock_last, GTK_STOCK_GOTO_LAST); + add_unsized (factory, stock_left_arrow, GTK_STOCK_GO_BACK); add_unsized (factory, stock_new, GTK_STOCK_NEW); add_unsized (factory, stock_open, GTK_STOCK_OPEN); + add_unsized (factory, stock_paste, GTK_STOCK_PASTE); + add_unsized (factory, stock_preferences, GTK_STOCK_PREFERENCES); + add_unsized (factory, stock_print, GTK_STOCK_PRINT); + add_unsized (factory, stock_properties, GTK_STOCK_PROPERTIES); + add_unsized (factory, stock_redo, GTK_STOCK_REDO); + add_unsized (factory, stock_refresh, GTK_STOCK_REFRESH); + add_unsized (factory, stock_remove, GTK_STOCK_REMOVE); + add_unsized (factory, stock_revert, GTK_STOCK_REVERT_TO_SAVED); + add_unsized (factory, stock_right_arrow, GTK_STOCK_GO_FORWARD); + add_unsized (factory, stock_save, GTK_STOCK_FLOPPY); add_unsized (factory, stock_save, GTK_STOCK_SAVE); - - add_unsized (factory, MISSING_IMAGE_INLINE, GTK_STOCK_MISSING_IMAGE); + add_unsized (factory, stock_save_as, GTK_STOCK_SAVE_AS); + add_unsized (factory, stock_search, GTK_STOCK_FIND); + add_unsized (factory, stock_search_replace, GTK_STOCK_FIND_AND_REPLACE); + add_unsized (factory, stock_sort_ascending, GTK_STOCK_SORT_ASCENDING); + add_unsized (factory, stock_spellcheck, GTK_STOCK_SPELL_CHECK); + add_unsized (factory, stock_stop, GTK_STOCK_STOP); + add_unsized (factory, stock_text_bold, GTK_STOCK_BOLD); + add_unsized (factory, stock_text_italic, GTK_STOCK_ITALIC); + add_unsized (factory, stock_text_strikeout, GTK_STOCK_STRIKETHROUGH); + add_unsized (factory, stock_text_underline, GTK_STOCK_UNDERLINE); + add_unsized (factory, stock_top, GTK_STOCK_GOTO_TOP); + add_unsized (factory, stock_trash, GTK_STOCK_DELETE); + add_unsized (factory, stock_undelete, GTK_STOCK_UNDELETE); + add_unsized (factory, stock_undo, GTK_STOCK_UNDO); + add_unsized (factory, stock_up_arrow, GTK_STOCK_GO_UP); + add_unsized (factory, stock_zoom_1, GTK_STOCK_ZOOM_100); + add_unsized (factory, stock_zoom_fit, GTK_STOCK_ZOOM_FIT); + add_unsized (factory, stock_zoom_in, GTK_STOCK_ZOOM_IN); + add_unsized (factory, stock_zoom_out, GTK_STOCK_ZOOM_OUT); } /* Sizes */ @@ -929,17 +1058,26 @@ find_and_prep_icon_source (GtkIconSet *icon_set, } static GdkPixbuf* -get_fallback_image (void) +render_fallback_image (GtkStyle *style, + GtkTextDirection direction, + GtkStateType state, + GtkIconSize size, + GtkWidget *widget, + const char *detail) { /* This icon can be used for any direction/state/size */ - static GdkPixbuf *pixbuf = NULL; - - if (pixbuf == NULL) - pixbuf = gdk_pixbuf_new_from_inline (MISSING_IMAGE_INLINE, FALSE, -1, NULL); - else - g_object_ref (G_OBJECT (pixbuf)); + static GtkIconSource fallback_source = { NULL, NULL, 0, 0, 0, TRUE, TRUE, TRUE }; - return pixbuf; + if (fallback_source.pixbuf == NULL) + fallback_source.pixbuf = gdk_pixbuf_new_from_inline (MISSING_IMAGE_INLINE, FALSE, -1, NULL); + + return gtk_style_render_icon (style, + &fallback_source, + direction, + state, + size, + widget, + detail); } /** @@ -977,7 +1115,7 @@ gtk_icon_set_render_icon (GtkIconSet *icon_set, g_return_val_if_fail (GTK_IS_STYLE (style), NULL); if (icon_set->sources == NULL) - return get_fallback_image (); + return render_fallback_image (style, direction, state, size, widget, detail); icon = find_in_cache (icon_set, style, direction, state, size); @@ -992,7 +1130,7 @@ gtk_icon_set_render_icon (GtkIconSet *icon_set, source = find_and_prep_icon_source (icon_set, direction, state, size); if (source == NULL) - return get_fallback_image (); + return render_fallback_image (style, direction, state, size, widget, detail); g_assert (source->pixbuf != NULL); @@ -1007,7 +1145,7 @@ gtk_icon_set_render_icon (GtkIconSet *icon_set, if (icon == NULL) { g_warning ("Theme engine failed to render icon"); - return get_fallback_image (); + return NULL; } add_to_cache (icon_set, style, direction, state, size, icon); @@ -1093,6 +1231,86 @@ gtk_icon_set_add_source (GtkIconSet *icon_set, icon_source_compare); } +/** + * gtk_icon_set_get_sizes: + * @icon_set: a #GtkIconSet + * @sizes: return location for array of sizes + * @n_sizes: location to store number of elements in returned array + * + * Obtains a list of icon sizes this icon set can render. The returned + * array must be freed with g_free(). + * + **/ +void +gtk_icon_set_get_sizes (GtkIconSet *icon_set, + GtkIconSize **sizes, + gint *n_sizes) +{ + GSList *tmp_list; + gboolean all_sizes = FALSE; + GSList *specifics = NULL; + + g_return_if_fail (icon_set != NULL); + g_return_if_fail (sizes != NULL); + g_return_if_fail (n_sizes != NULL); + + tmp_list = icon_set->sources; + while (tmp_list != NULL) + { + GtkIconSource *source; + + source = tmp_list->data; + + if (source->any_size) + { + all_sizes = TRUE; + break; + } + else + specifics = g_slist_prepend (specifics, GINT_TO_POINTER (source->size)); + + tmp_list = g_slist_next (tmp_list); + } + + if (all_sizes) + { + /* Need to find out what sizes exist */ + gint i; + + init_icon_sizes (); + + *sizes = g_new (GtkIconSize, icon_sizes_used); + *n_sizes = icon_sizes_used; + + i = 0; + while (i < icon_sizes_used) + { + (*sizes)[i] = icon_sizes[i].size; + ++i; + } + } + else + { + gint i; + + *n_sizes = g_slist_length (specifics); + *sizes = g_new (GtkIconSize, *n_sizes); + + i = 0; + tmp_list = specifics; + while (tmp_list != NULL) + { + (*sizes)[i] = GPOINTER_TO_INT (tmp_list->data); + + ++i; + tmp_list = g_slist_next (tmp_list); + } + } + + g_slist_free (specifics); +} + + /** * gtk_icon_source_new: * @@ -1803,3 +2021,55 @@ _gtk_icon_set_invalidate_caches (void) { ++cache_serial; } + +static void +listify_foreach (gpointer key, gpointer value, gpointer data) +{ + GSList **list = data; + + *list = g_slist_prepend (*list, key); +} + +static GSList * +g_hash_table_get_keys (GHashTable *table) +{ + GSList *list = NULL; + + g_hash_table_foreach (table, listify_foreach, &list); + + return list; +} + +/** + * _gtk_icon_factory_list_ids: + * + * Gets all known IDs stored in an existing icon factory. + * The strings in the returned list aren't copied. + * The list itself should be freed. + * + * Return value: List of ids in icon factories + **/ +GSList* +_gtk_icon_factory_list_ids (void) +{ + GSList *tmp_list; + GSList *ids; + + ids = NULL; + + tmp_list = all_icon_factories; + while (tmp_list != NULL) + { + GSList *these_ids; + + GtkIconFactory *factory = GTK_ICON_FACTORY (tmp_list->data); + + these_ids = g_hash_table_get_keys (factory->icons); + + ids = g_slist_concat (ids, these_ids); + + tmp_list = g_slist_next (tmp_list); + } + + return ids; +} diff --git a/gtk/gtkiconfactory.h b/gtk/gtkiconfactory.h index c4b755af7c..33c965cfcc 100644 --- a/gtk/gtkiconfactory.h +++ b/gtk/gtkiconfactory.h @@ -117,6 +117,9 @@ GdkPixbuf* gtk_icon_set_render_icon (GtkIconSet *icon_set, void gtk_icon_set_add_source (GtkIconSet *icon_set, const GtkIconSource *source); +void gtk_icon_set_get_sizes (GtkIconSet *icon_set, + GtkIconSize **sizes, + gint *n_sizes); GtkIconSource* gtk_icon_source_new (void); GtkIconSource* gtk_icon_source_copy (const GtkIconSource *source); @@ -152,6 +155,7 @@ GtkIconSize gtk_icon_source_get_size (const GtkIconSource * /* ignore this */ void _gtk_icon_set_invalidate_caches (void); +GSList* _gtk_icon_factory_list_ids (void); #ifdef __cplusplus } diff --git a/gtk/gtkmessagedialog.c b/gtk/gtkmessagedialog.c index f37c96e973..41d135f756 100644 --- a/gtk/gtkmessagedialog.c +++ b/gtk/gtkmessagedialog.c @@ -225,37 +225,37 @@ gtk_message_dialog_new (GtkWindow *parent, case GTK_BUTTONS_OK: gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK); break; case GTK_BUTTONS_CLOSE: gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_CLOSE, + GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE); break; case GTK_BUTTONS_CANCEL: gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_CANCEL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); break; case GTK_BUTTONS_YES_NO: gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_YES, + GTK_STOCK_YES, GTK_RESPONSE_YES); gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_NO, + GTK_STOCK_NO, GTK_RESPONSE_NO); break; case GTK_BUTTONS_OK_CANCEL: gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_OK, + GTK_STOCK_OK, GTK_RESPONSE_OK); gtk_dialog_add_button (dialog, - GTK_STOCK_BUTTON_CANCEL, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); break; diff --git a/gtk/gtkstock.c b/gtk/gtkstock.c index 5f3349dfb3..02613c94c5 100644 --- a/gtk/gtkstock.c +++ b/gtk/gtkstock.c @@ -24,7 +24,10 @@ * GTK+ at ftp://ftp.gtk.org/pub/gtk/. */ +#include + #include "gtkstock.h" +#include "gtkiconfactory.h" #include "gtkintl.h" #include @@ -144,11 +147,11 @@ listify_foreach (gpointer key, gpointer value, gpointer data) { GSList **list = data; - *list = g_slist_prepend (*list, value); + *list = g_slist_prepend (*list, key); } static GSList * -g_hash_table_get_values (GHashTable *table) +g_hash_table_get_keys (GHashTable *table) { GSList *list = NULL; @@ -158,20 +161,56 @@ g_hash_table_get_values (GHashTable *table) } /** - * gtk_stock_list_items: + * gtk_stock_list_ids: * - * Retrieves a list of all known #GtkStockItem. The items are not copied; - * they should not be freed. However, the list itself must be freed - * with g_slist_free(). + * Retrieves a list of all known stock IDs added to a #GtkIconFactory + * or registered with gtk_stock_add(). The list must be freed with g_slist_free(), + * and each string in the list must be freed with g_free(). * - * Return value: a list of registered stock items + * Return value: a list of known stock IDs **/ -GSList * -gtk_stock_list_items (void) +GSList* +gtk_stock_list_ids (void) { + GSList *ids; + GSList *icon_ids; + GSList *retval; + GSList *tmp_list; + const gchar *last_id; + init_stock_hash (); - return g_hash_table_get_values (stock_hash); + ids = g_hash_table_get_keys (stock_hash); + icon_ids = _gtk_icon_factory_list_ids (); + ids = g_slist_concat (ids, icon_ids); + + ids = g_slist_sort (ids, (GCompareFunc)strcmp); + + last_id = NULL; + retval = NULL; + tmp_list = ids; + while (tmp_list != NULL) + { + GSList *next; + + next = g_slist_next (tmp_list); + + if (last_id && strcmp (tmp_list->data, last_id) == 0) + { + /* duplicate, ignore */ + } + else + { + retval = g_slist_prepend (retval, g_strdup (tmp_list->data)); + last_id = tmp_list->data; + } + + g_slist_free_1 (tmp_list); + + tmp_list = next; + } + + return retval; } /** @@ -223,26 +262,58 @@ gtk_stock_item_free (GtkStockItem *item) static GtkStockItem builtin_items [] = { - /* KEEP IN SYNC with gtkiconfactory.c stock icons */ + /* KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate */ { GTK_STOCK_DIALOG_INFO, N_("Information"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_DIALOG_WARNING, N_("Warning"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_DIALOG_ERROR, N_("Error"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_DIALOG_QUESTION, N_("Question"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_APPLY, N_("_Apply"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_OK, N_("_OK"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_CANCEL, N_("_Cancel"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_CLOSE, N_("_Close"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_YES, N_("_Yes"), 0, 0, GETTEXT_PACKAGE }, - { GTK_STOCK_BUTTON_NO, N_("_No"), 0, 0, GETTEXT_PACKAGE }, - + /* FIXME these need accelerators when appropriate, and + * need the mnemonics to be rationalized + */ + { GTK_STOCK_APPLY, N_("_Apply"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_BOLD, N_("_Bold"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_CANCEL, N_("_Cancel"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_CLEAR, N_("_Clear"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_CLOSE, N_("_Close"), GDK_CONTROL_MASK, 'w', GETTEXT_PACKAGE }, - { GTK_STOCK_QUIT, N_("_Quit"), GDK_CONTROL_MASK, 'q', GETTEXT_PACKAGE }, + { GTK_STOCK_COPY, N_("_Copy"), GDK_CONTROL_MASK, 'c', GETTEXT_PACKAGE }, + { GTK_STOCK_CUT, N_("C_ut"), GDK_CONTROL_MASK, 'x', GETTEXT_PACKAGE }, + { GTK_STOCK_FIND, N_("_Find"), GDK_CONTROL_MASK, 'f', GETTEXT_PACKAGE }, + { GTK_STOCK_FIND_AND_REPLACE, N_("Find and _Replace"), GDK_CONTROL_MASK, 'r', GETTEXT_PACKAGE }, + { GTK_STOCK_GO_BACK, N_("_Back"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_GO_FORWARD, N_("_Forward"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_HELP, N_("_Help"), GDK_CONTROL_MASK, 'h', GETTEXT_PACKAGE }, + { GTK_STOCK_HOME, N_("_Home"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_ITALIC, N_("_Italic"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_JUSTIFY_CENTER, N_("_Center"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_JUSTIFY_FILL, N_("_Fill"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_JUSTIFY_LEFT, N_("_Left"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_JUSTIFY_RIGHT, N_("_Right"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_NEW, N_("_New"), GDK_CONTROL_MASK, 'n', GETTEXT_PACKAGE }, + { GTK_STOCK_NO, N_("_No"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_OK, N_("_OK"), 0, 0, GETTEXT_PACKAGE }, { GTK_STOCK_OPEN, N_("_Open"), GDK_CONTROL_MASK, 'o', GETTEXT_PACKAGE }, - { GTK_STOCK_SAVE, N_("_Save"), GDK_CONTROL_MASK, 's', GETTEXT_PACKAGE } + { GTK_STOCK_PASTE, N_("_Paste"), GDK_CONTROL_MASK, 'v', GETTEXT_PACKAGE }, + { GTK_STOCK_PREFERENCES, N_("_Preferences"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_PRINT, N_("_Print"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_PRINT_PREVIEW, N_("Print Pre_view"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_PROPERTIES, N_("_Properties"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_QUIT, N_("_Quit"), GDK_CONTROL_MASK, 'q', GETTEXT_PACKAGE }, + { GTK_STOCK_REDO, N_("_Redo"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_REVERT_TO_SAVED, N_("_Revert"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_SAVE, N_("_Save"), GDK_CONTROL_MASK, 's', GETTEXT_PACKAGE }, + { GTK_STOCK_SAVE_AS, N_("Save _As"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_SPELL_CHECK, N_("_Spell Check"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_STOP, N_("_Stop"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_STRIKETHROUGH, N_("_Strikethrough"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_UNDERLINE, N_("_Underline"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_UNDO, N_("_Undo"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_YES, N_("_Yes"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_ZOOM_100, N_("Zoom _100%"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_ZOOM_FIT, N_("Zoom to _Fit"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_ZOOM_IN, N_("Zoom _In"), 0, 0, GETTEXT_PACKAGE }, + { GTK_STOCK_ZOOM_OUT, N_("Zoom _Out"), 0, 0, GETTEXT_PACKAGE } }; static void diff --git a/gtk/gtkstock.h b/gtk/gtkstock.h index a613446168..fc8b40da66 100644 --- a/gtk/gtkstock.h +++ b/gtk/gtkstock.h @@ -52,16 +52,16 @@ void gtk_stock_add_static (const GtkStockItem *items, gboolean gtk_stock_lookup (const gchar *stock_id, GtkStockItem *item); -/* Should free the list, but DO NOT modify the items in the list. +/* Should free the list (and free each string in it also). * This function is only useful for GUI builders and such. */ -GSList* gtk_stock_list_items (void); +GSList* gtk_stock_list_ids (void); GtkStockItem *gtk_stock_item_copy (const GtkStockItem *item); void gtk_stock_item_free (GtkStockItem *item); -/* Stock IDs */ +/* Stock IDs (not all are stock items; some are images only) */ #define GTK_STOCK_MISSING_IMAGE "gtk-missing-image" #define GTK_STOCK_DIALOG_INFO "gtk-dialog-info" @@ -69,19 +69,69 @@ void gtk_stock_item_free (GtkStockItem *item); #define GTK_STOCK_DIALOG_ERROR "gtk-dialog-error" #define GTK_STOCK_DIALOG_QUESTION "gtk-dialog-question" -#define GTK_STOCK_BUTTON_APPLY "gtk-button-apply" -#define GTK_STOCK_BUTTON_OK "gtk-button-ok" -#define GTK_STOCK_BUTTON_CANCEL "gtk-button-cancel" -#define GTK_STOCK_BUTTON_CLOSE "gtk-button-close" -#define GTK_STOCK_BUTTON_YES "gtk-button-yes" -#define GTK_STOCK_BUTTON_NO "gtk-button-no" - +#define GTK_STOCK_ADD "gtk-add" +#define GTK_STOCK_APPLY "gtk-apply" +#define GTK_STOCK_BOLD "gtk-bold" +#define GTK_STOCK_CANCEL "gtk-cancel" +#define GTK_STOCK_CDROM "gtk-cdrom" +#define GTK_STOCK_CLEAR "gtk-clear" #define GTK_STOCK_CLOSE "gtk-close" -#define GTK_STOCK_QUIT "gtk-quit" +#define GTK_STOCK_CONVERT "gtk-convert" +#define GTK_STOCK_COPY "gtk-copy" +#define GTK_STOCK_CUT "gtk-cut" +#define GTK_STOCK_DELETE "gtk-delete" +#define GTK_STOCK_EXECUTE "gtk-execute" +#define GTK_STOCK_FIND "gtk-find" +#define GTK_STOCK_FIND_AND_REPLACE "gtk-find-and-replace" +#define GTK_STOCK_FLOPPY "gtk-floppy" +#define GTK_STOCK_GOTO_BOTTOM "gtk-goto-bottom" +#define GTK_STOCK_GOTO_FIRST "gtk-goto-first" +#define GTK_STOCK_GOTO_LAST "gtk-goto-last" +#define GTK_STOCK_GOTO_TOP "gtk-goto-top" +#define GTK_STOCK_GO_BACK "gtk-go-back" +#define GTK_STOCK_GO_DOWN "gtk-go-down" +#define GTK_STOCK_GO_FORWARD "gtk-go-forward" +#define GTK_STOCK_GO_UP "gtk-up" #define GTK_STOCK_HELP "gtk-help" +#define GTK_STOCK_HOME "gtk-home" +#define GTK_STOCK_INDEX "gtk-index" +#define GTK_STOCK_ITALIC "gtk-italic" +#define GTK_STOCK_JUMP_TO "gtk-jump-to" +#define GTK_STOCK_JUSTIFY_CENTER "gtk-justify-center" +#define GTK_STOCK_JUSTIFY_FILL "gtk-justify-fill" +#define GTK_STOCK_JUSTIFY_LEFT "gtk-justify-left" +#define GTK_STOCK_JUSTIFY_RIGHT "gtk-justify-right" #define GTK_STOCK_NEW "gtk-new" +#define GTK_STOCK_NO "gtk-no" +#define GTK_STOCK_OK "gtk-ok" #define GTK_STOCK_OPEN "gtk-open" +#define GTK_STOCK_PASTE "gtk-paste" +#define GTK_STOCK_PREFERENCES "gtk-preferences" +#define GTK_STOCK_PRINT "gtk-print" +#define GTK_STOCK_PRINT_PREVIEW "gtk-print-preview" +#define GTK_STOCK_PROPERTIES "gtk-properties" +#define GTK_STOCK_QUIT "gtk-quit" +#define GTK_STOCK_REDO "gtk-redo" +#define GTK_STOCK_REFRESH "gtk-refresh" +#define GTK_STOCK_REMOVE "gtk-remove" +#define GTK_STOCK_REVERT_TO_SAVED "gtk-revert-to-saved" #define GTK_STOCK_SAVE "gtk-save" +#define GTK_STOCK_SAVE_AS "gtk-save-as" +#define GTK_STOCK_SELECT_COLOR "gtk-select-color" +#define GTK_STOCK_SELECT_FONT "gtk-select-font" +#define GTK_STOCK_SORT_ASCENDING "gtk-sort-ascending" +#define GTK_STOCK_SORT_DESCENDING "gtk-sort-descending" +#define GTK_STOCK_SPELL_CHECK "gtk-spell-check" +#define GTK_STOCK_STOP "gtk-stop" +#define GTK_STOCK_STRIKETHROUGH "gtk-strikethrough" +#define GTK_STOCK_UNDELETE "gtk-undelete" +#define GTK_STOCK_UNDERLINE "gtk-underline" +#define GTK_STOCK_UNDO "gtk-undo" +#define GTK_STOCK_YES "gtk-yes" +#define GTK_STOCK_ZOOM_100 "gtk-zoom-100" +#define GTK_STOCK_ZOOM_FIT "gtk-zoom-fit" +#define GTK_STOCK_ZOOM_IN "gtk-zoom-in" +#define GTK_STOCK_ZOOM_OUT "gtk-zoom-out" #ifdef __cplusplus } diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index d0bca99e89..6641f75837 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -2283,6 +2283,9 @@ gtk_text_view_size_request (GtkWidget *widget, text_view = GTK_TEXT_VIEW (widget); + text_view->text_window->requisition.width = text_view->layout->width; + text_view->text_window->requisition.height = text_view->layout->height; + requisition->width = text_view->text_window->requisition.width + FOCUS_EDGE_WIDTH * 2; requisition->height = text_view->text_window->requisition.height + FOCUS_EDGE_WIDTH * 2; diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 2895e4fe1e..a6e83137e5 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -1015,8 +1015,8 @@ gtk_tree_view_size_request (GtkWidget *widget, tree_view = GTK_TREE_VIEW (widget); - requisition->width = 200; - requisition->height = 200; + requisition->width = tree_view->priv->width; + requisition->height = tree_view->priv->height + tree_view->priv->header_height; tmp_list = tree_view->priv->children; @@ -6173,6 +6173,49 @@ gtk_tree_view_insert_column_with_attributes (GtkTreeView *tree_view, return tree_view->priv->n_columns; } +/** + * gtk_tree_view_insert_column_with_data_func: + * @tree_view: a #GtkTreeView + * @position: Position to insert, -1 for append + * @title: column title + * @cell: cell renderer for column + * @func: function to set attributes of cell renderer + * @data: data for @func + * @dnotify: destroy notifier for @data + * + * Convenience function that inserts a new column into the #GtkTreeView + * with the given cell renderer and a #GtkCellDataFunc to set cell renderer + * attributes (normally using data from the model). See also + * gtk_tree_view_column_set_cell_data_func(), gtk_tree_view_column_set_cell_renderer(). + * + * Return value: number of columns in the tree view post-insert + **/ +gint +gtk_tree_view_insert_column_with_data_func (GtkTreeView *tree_view, + gint position, + gchar *title, + GtkCellRenderer *cell, + GtkCellDataFunc func, + gpointer data, + GDestroyNotify dnotify) +{ + GtkTreeViewColumn *column; + + g_return_val_if_fail (GTK_IS_TREE_VIEW (tree_view), -1); + + column = gtk_tree_view_column_new (); + + gtk_tree_view_column_set_title (column, title); + gtk_tree_view_column_set_cell_renderer (column, cell); + gtk_tree_view_column_set_cell_data_func (column, func, data, dnotify); + + gtk_tree_view_insert_column (tree_view, column, position); + + g_object_unref (column); + + return tree_view->priv->n_columns; +} + /** * gtk_tree_view_get_column: * @tree_view: A #GtkTreeView. diff --git a/gtk/gtktreeview.h b/gtk/gtktreeview.h index 432e8e2f09..6568dbd00f 100644 --- a/gtk/gtktreeview.h +++ b/gtk/gtktreeview.h @@ -138,6 +138,13 @@ gint gtk_tree_view_insert_column_with_attributes (GtkTreeView gchar *title, GtkCellRenderer *cell, ...); +gint gtk_tree_view_insert_column_with_data_func (GtkTreeView *tree_view, + gint position, + gchar *title, + GtkCellRenderer *cell, + GtkCellDataFunc func, + gpointer data, + GDestroyNotify dnotify); GtkTreeViewColumn *gtk_tree_view_get_column (GtkTreeView *tree_view, gint n); GList *gtk_tree_view_get_columns (GtkTreeView *tree_view); diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 385bc5447a..03d6f8ea31 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -4022,7 +4022,7 @@ gtk_widget_create_pango_layout (GtkWidget *widget, * A convenience function that uses the theme engine and RC file * settings for @widget to look up @stock_id and render it to * a pixbuf. @stock_id should be a stock icon ID such as - * #GTK_STOCK_OPEN or #GTK_STOCK_BUTTON_OK. @size should be a size + * #GTK_STOCK_OPEN or #GTK_STOCK_OK. @size should be a size * such as #GTK_ICON_SIZE_MENU. @detail should be a string that * identifies the widget or code doing the rendering, so that * theme engines can special-case rendering for that widget or code. diff --git a/gtk/stock-icons/Makefile.am b/gtk/stock-icons/Makefile.am index 61f1d8a3c8..29d5b6e2cf 100644 --- a/gtk/stock-icons/Makefile.am +++ b/gtk/stock-icons/Makefile.am @@ -1,40 +1,148 @@ -IMAGES = @STRIP_BEGIN@ \ - dialog_error.png \ - dialog_info.png \ - dialog_question.png \ - dialog_warning.png \ - stock_button_apply.png \ - stock_button_cancel.png \ - stock_button_close.png \ - stock_button_no.png \ - stock_button_ok.png \ - stock_button_yes.png \ - stock_close.png \ - stock_exit.png \ - stock_help.png \ - stock_new.png \ - stock_open.png \ - stock_save.png \ +IMAGES = @STRIP_BEGIN@ \ + dialog_error.png \ + dialog_info.png \ + dialog_question.png \ + dialog_warning.png \ + stock_add.png \ + stock_align_center.png \ + stock_align_justify.png \ + stock_align_left.png \ + stock_align_right.png \ + stock_bottom.png \ + stock_button_apply.png \ + stock_button_cancel.png \ + stock_button_close.png \ + stock_button_no.png \ + stock_button_ok.png \ + stock_button_yes.png \ + stock_cdrom.png \ + stock_clear.png \ + stock_close.png \ + stock_close.png \ + stock_colorselector.png \ + stock_convert.png \ + stock_copy.png \ + stock_cut.png \ + stock_down_arrow.png \ + stock_exec.png \ + stock_exit.png \ + stock_first.png \ + stock_font.png \ + stock_help.png \ + stock_help.png \ + stock_home.png \ + stock_index.png \ + stock_jump_to.png \ + stock_last.png \ + stock_left_arrow.png \ + stock_menu_print_preview.png \ + stock_menu_sort_descending.png \ + stock_new.png \ + stock_open.png \ + stock_paste.png \ + stock_preferences.png \ + stock_print.png \ + stock_print_preview.png \ + stock_properties.png \ + stock_redo.png \ + stock_refresh.png \ + stock_remove.png \ + stock_revert.png \ + stock_right_arrow.png \ + stock_save.png \ + stock_save_as.png \ + stock_search.png \ + stock_search_replace.png \ + stock_sort_ascending.png \ + stock_sort_descending.png \ + stock_spellcheck.png \ + stock_stop.png \ + stock_text_bold.png \ + stock_text_italic.png \ + stock_text_strikeout.png \ + stock_text_underline.png \ + stock_top.png \ + stock_trash.png \ + stock_undelete.png \ + stock_undo.png \ + stock_up_arrow.png \ + stock_zoom_1.png \ + stock_zoom_fit.png \ + stock_zoom_in.png \ + stock_zoom_out.png \ @STRIP_END@ -VARIABLES = @STRIP_BEGIN@ \ - dialog_error $(srcdir)/dialog_error.png \ - dialog_info $(srcdir)/dialog_info.png \ - dialog_question $(srcdir)/dialog_question.png \ - dialog_warning $(srcdir)/dialog_warning.png \ - stock_button_apply $(srcdir)/stock_button_apply.png \ - stock_button_cancel $(srcdir)/stock_button_cancel.png \ - stock_button_close $(srcdir)/stock_button_close.png \ - stock_button_no $(srcdir)/stock_button_no.png \ - stock_button_ok $(srcdir)/stock_button_ok.png \ - stock_button_yes $(srcdir)/stock_button_yes.png \ - stock_close $(srcdir)/stock_close.png \ - stock_exit $(srcdir)/stock_exit.png \ - stock_help $(srcdir)/stock_help.png \ - stock_new $(srcdir)/stock_new.png \ - stock_open $(srcdir)/stock_open.png \ - stock_save $(srcdir)/stock_save.png \ +VARIABLES = @STRIP_BEGIN@ \ + dialog_error $(srcdir)/dialog_error.png \ + dialog_info $(srcdir)/dialog_info.png \ + dialog_question $(srcdir)/dialog_question.png \ + dialog_warning $(srcdir)/dialog_warning.png \ + stock_add $(srcdir)/stock_add.png \ + stock_align_justify $(srcdir)/stock_align_justify.png \ + stock_align_left $(srcdir)/stock_align_left.png \ + stock_button_apply $(srcdir)/stock_button_apply.png \ + stock_button_cancel $(srcdir)/stock_button_cancel.png \ + stock_button_close $(srcdir)/stock_button_close.png \ + stock_button_no $(srcdir)/stock_button_no.png \ + stock_button_ok $(srcdir)/stock_button_ok.png \ + stock_button_yes $(srcdir)/stock_button_yes.png \ + stock_align_center $(srcdir)/stock_align_center.png \ + stock_align_right $(srcdir)/stock_align_right.png \ + stock_bottom $(srcdir)/stock_bottom.png \ + stock_cdrom $(srcdir)/stock_cdrom.png \ + stock_clear $(srcdir)/stock_clear.png \ + stock_close $(srcdir)/stock_close.png \ + stock_colorselector $(srcdir)/stock_colorselector.png \ + stock_convert $(srcdir)/stock_convert.png \ + stock_copy $(srcdir)/stock_copy.png \ + stock_cut $(srcdir)/stock_cut.png \ + stock_down_arrow $(srcdir)/stock_down_arrow.png \ + stock_exec $(srcdir)/stock_exec.png \ + stock_exit $(srcdir)/stock_exit.png \ + stock_first $(srcdir)/stock_first.png \ + stock_font $(srcdir)/stock_font.png \ + stock_help $(srcdir)/stock_help.png \ + stock_home $(srcdir)/stock_home.png \ + stock_index $(srcdir)/stock_index.png \ + stock_jump_to $(srcdir)/stock_jump_to.png \ + stock_last $(srcdir)/stock_last.png \ + stock_left_arrow $(srcdir)/stock_left_arrow.png \ + stock_menu_print_preview $(srcdir)/stock_menu_print_preview.png \ + stock_menu_sort_descending $(srcdir)/stock_menu_sort_descending.png \ + stock_new $(srcdir)/stock_new.png \ + stock_open $(srcdir)/stock_open.png \ + stock_paste $(srcdir)/stock_paste.png \ + stock_preferences $(srcdir)/stock_preferences.png \ + stock_print $(srcdir)/stock_print.png \ + stock_print_preview $(srcdir)/stock_print_preview.png \ + stock_properties $(srcdir)/stock_properties.png \ + stock_redo $(srcdir)/stock_redo.png \ + stock_refresh $(srcdir)/stock_refresh.png \ + stock_remove $(srcdir)/stock_remove.png \ + stock_revert $(srcdir)/stock_revert.png \ + stock_right_arrow $(srcdir)/stock_right_arrow.png \ + stock_save $(srcdir)/stock_save.png \ + stock_save_as $(srcdir)/stock_save_as.png \ + stock_search $(srcdir)/stock_search.png \ + stock_search_replace $(srcdir)/stock_search_replace.png \ + stock_sort_ascending $(srcdir)/stock_sort_ascending.png \ + stock_sort_descending $(srcdir)/stock_sort_descending.png \ + stock_spellcheck $(srcdir)/stock_spellcheck.png \ + stock_stop $(srcdir)/stock_stop.png \ + stock_text_bold $(srcdir)/stock_text_bold.png \ + stock_text_italic $(srcdir)/stock_text_italic.png \ + stock_text_strikeout $(srcdir)/stock_text_strikeout.png \ + stock_text_underline $(srcdir)/stock_text_underline.png \ + stock_top $(srcdir)/stock_top.png \ + stock_trash $(srcdir)/stock_trash.png \ + stock_undelete $(srcdir)/stock_undelete.png \ + stock_undo $(srcdir)/stock_undo.png \ + stock_up_arrow $(srcdir)/stock_up_arrow.png \ + stock_zoom_1 $(srcdir)/stock_zoom_1.png \ + stock_zoom_fit $(srcdir)/stock_zoom_fit.png \ + stock_zoom_in $(srcdir)/stock_zoom_in.png \ + stock_zoom_out $(srcdir)/stock_zoom_out.png \ @STRIP_END@ noinst_DATA = gtkstockpixbufs.h diff --git a/gtk/stock-icons/stock_add.png b/gtk/stock-icons/stock_add.png new file mode 100644 index 0000000000000000000000000000000000000000..62ddebe678fee0a0d0e70d6c02e5ba87c9c12957 GIT binary patch literal 505 zcmV_!a@aYos#6wmc_#bYqbp71N`C@= zpEBCF*YOP7CjZL{AmI065J)KzLJ*0}eG*G4NhUQ$#zJ_#1C~6tr>Nf3K;kIQxu!8NJjKL#AH@YF zpZ@d2DbbZ3Dk{q9>FKhgvEQP^Q9Q$Oe0GX=G(f=bX_u_8Z|SB!HXQxw%us+@ vm=7sH4G#7hN5q%$V6M`wkdB-x{x!S<(UN`8lkuK{00000NkvXXu0mjfd!p^| literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_add_24.png b/gtk/stock-icons/stock_add_24.png new file mode 100644 index 0000000000000000000000000000000000000000..62ddebe678fee0a0d0e70d6c02e5ba87c9c12957 GIT binary patch literal 505 zcmV_!a@aYos#6wmc_#bYqbp71N`C@= zpEBCF*YOP7CjZL{AmI065J)KzLJ*0}eG*G4NhUQ$#zJ_#1C~6tr>Nf3K;kIQxu!8NJjKL#AH@YF zpZ@d2DbbZ3Dk{q9>FKhgvEQP^Q9Q$Oe0GX=G(f=bX_u_8Z|SB!HXQxw%us+@ vm=7sH4G#7hN5q%$V6M`wkdB-x{x!S<(UN`8lkuK{00000NkvXXu0mjfd!p^| literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_align_center.png b/gtk/stock-icons/stock_align_center.png new file mode 100644 index 0000000000000000000000000000000000000000..b11ae626667cce62728cb2988e03780be4ef420e GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJRMIL$B>F! z$q5pyEsV-y8~?L}PDnpoFLWj7QTuCMEF9clsa>m!k|EsUhd7pD(1{aMl7zb|Ha>3l-qPanchu$e2 zy_F>z>(1zU=$!O9cm1@!7dt~u7XQzRZz6|)1{#A6%uLTqEGdPUXuQ?H#N5El-`LmF vWXl#0Lqp?@K1N$i47Qp0_!@bb`7tvz$#Yn~F! z$q5pyEsV-y8~?L}PDnpoFLWj7QTuCMEF9clsa>m!k|EsUhd7pD(1{aMl7zb|Ha>3l-qPanchu$e2 zy_F>z>(1zU=$!O9cm1@!7dt~u7XQzRZz6|)1{#A6%uLTqEGdPUXuQ?H#N5El-`LmF vWXl#0Lqp?@K1N$i47Qp0_!@bb`7tvz$#Yn~F! z$q5pyEsV-@zRG*D9Q@ZGs;g?IFuOBPyfnwbTsG-by~)-ow;FECU*S}par>g{3VHq; zZx>x*i_u$tr0pRCgRzSghg`kyN1%DGRUr{2!TD(=<%vb93=9>wiZ29Q`*OzD$N#IZ z&v~D7VFnkCFBk`I*mA+#;G(%fh=<-O9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}tDsz|+*g&u^=Nfxn^I7K1HYe0+S23=NG8jm*8gObwYB+Wv9q UC~3}b2Wn^VboFyt=akR{0Nq4lNB{r; literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_align_justify_24.png b/gtk/stock-icons/stock_align_justify_24.png new file mode 100644 index 0000000000000000000000000000000000000000..964a9fb2f7ad3d447962cfb68fff12b1da32ffa8 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJQq(F$B>F! z$q5pyEsV-@zRG*D9Q@ZGs;g?IFuOBPyfnwbTsG-by~)-ow;FECU*S}par>g{3VHq; zZx>x*i_u$tr0pRCgRzSghg`kyN1%DGRUr{2!TD(=<%vb93=9>wiZ29Q`*OzD$N#IZ z&v~D7VFnkCFBk`I*mA+#;G(%fh=<-O9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}tDsz|+*g&u^=Nfxn^I7K1HYe0+S23=NG8jm*8gObwYB+Wv9q UC~3}b2Wn^VboFyt=akR{0Nq4lNB{r; literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_align_left.png b/gtk/stock-icons/stock_align_left.png new file mode 100644 index 0000000000000000000000000000000000000000..c125dcc322b9b0f646c3f56f4c2cafdcc3f11936 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJY7#0$B>F! z$q5pyEsV-@zRI^-tj#&Fe%dUvfOq0KW&!#w9UqyW{*&ZeXd=VF@aQ)?2fxh4Z$OQ% zRUr{2!TD(=<%vb93=9>wiZ29Q`*OzD$N#IZ&v~D7VFnkCFBk`I*mA+#;G(%fh=<-O z9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}tD!#MsBw$kWKo wYvUH5tv=pn+YNk8eGNUle2jd(j5f0{^vQ9u)VD>n0kt!Dy85}Sb4q9e0JmRQ!2kdN literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_align_left_24.png b/gtk/stock-icons/stock_align_left_24.png new file mode 100644 index 0000000000000000000000000000000000000000..c125dcc322b9b0f646c3f56f4c2cafdcc3f11936 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJY7#0$B>F! z$q5pyEsV-@zRI^-tj#&Fe%dUvfOq0KW&!#w9UqyW{*&ZeXd=VF@aQ)?2fxh4Z$OQ% zRUr{2!TD(=<%vb93=9>wiZ29Q`*OzD$N#IZ&v~D7VFnkCFBk`I*mA+#;G(%fh=<-O z9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}tD!#MsBw$kWKo wYvUH5tv=pn+YNk8eGNUle2jd(j5f0{^vQ9u)VD>n0kt!Dy85}Sb4q9e0JmRQ!2kdN literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_align_right.png b/gtk/stock-icons/stock_align_right.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac863266ca4a89afc2c48fb4e58e6c841d3a49d GIT binary patch literal 260 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 V8NO!a8@d1h002ovPDHLkV1k#0cDw)p literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_clear_24.png b/gtk/stock-icons/stock_clear_24.png new file mode 100644 index 0000000000000000000000000000000000000000..96b6d57ddf3fbb4f40d7beda569803c434c8b999 GIT binary patch literal 791 zcmV+y1L*vTP)f=2b2hBEh;V#a- z=lp-?fA4|+ZHejq*OrG?yf|+gEwvRhpuY|vDJcp6@EA(=rs*I`j}4`}73D?C;s9-J z?J6jCZ2%6%hSF;TAwUR(Shz7QKzd?-&HFdKtPGP$O^hH~Hi|uYhd6(+ioRD)0J^)L z{J8^rzmxj=4UD{1NKQ`1+si;n@hL(>{JC|rhA9IJbD;zDDK@FTrJIM3n*lhUZ6af5 zwrFqf;PRz1b;Rt?o8}Gh)CTKiBM!wTMaxFvhJD?VPH;#k&ZQG0ri@b)r@7hTOWh2p}svmz@mQvjl`uLZNYbWR5zvk&AL zBM5ljVU^7FZA?r~vN0-{xCE21SnIG@>sTEefE>FX0E5AUl$0cG=k5VhX;UL1!)iRI1Aw8yVVB|n2XfPpWf_16ch0Ei+qb9cT(||; z+Z_xI4(r69+56S|>Z)S0_m$#se&fdFqX78&hUxyo-4m&ubXY414O|Yufb%1r4kuCZ zv5bEiWnf^KqM|DloXltZ^C;D~8?^P3rwdVC0wA7t^)vG6D{^!MW8Z(_>$en>F^A$4 zyIHc#j|2HTxKL4}t-)pB&Pha6IO(Q10)tlZV*-ZW4Rh738v>VF^987&Mb`g=>o=P+ V8NO!a8@d1h002ovPDHLkV1k#0cDw)p literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_colorselector.png b/gtk/stock-icons/stock_colorselector.png new file mode 100644 index 0000000000000000000000000000000000000000..2876ff2b0ad14c455a299e482f8832875453de54 GIT binary patch literal 592 zcmV-W00l>t~TMP|e@S6twVNuufWxL$YWn-cJk;!YWW+rdfY?%v`OS0>e*%-E=6`(9D=urBn?WP;4tC|}E^j`5yZRN2*CzI6OP zAGa%PCKHfM9Gm9}L1kBGetH&w!vjnBC$0y%78(KI`Lic7yTn^~YA`=N+mV_MqlSkr z3SFXdTUpWgYUf?b)C`5LlFP;bxI8kb=*5kUlBYEIxwGIZd_K4!k{t>34-k$-uv-n+ zog+2F1bSf6!7o#>1N{U4jQ89?uNo9LG6YVaQHtBG24~M*a>al9Zh3F8wistFy@Fmf zu$%kJozvv#Fh8uiKLqf1uW~`V)i`!drMI5|G~Yj3E*m2pi6}n1)ey+^szJ>#SnKE2|kMuU@}%2JY$0)aKGF*v)-W eSVkaE5AYlPzQIzLA71_d00000l>t~TMP|e@S6twVNuufWxL$YWn-cJk;!YWW+rdfY?%v`OS0>e*%-E=6`(9D=urBn?WP;4tC|}E^j`5yZRN2*CzI6OP zAGa%PCKHfM9Gm9}L1kBGetH&w!vjnBC$0y%78(KI`Lic7yTn^~YA`=N+mV_MqlSkr z3SFXdTUpWgYUf?b)C`5LlFP;bxI8kb=*5kUlBYEIxwGIZd_K4!k{t>34-k$-uv-n+ zog+2F1bSf6!7o#>1N{U4jQ89?uNo9LG6YVaQHtBG24~M*a>al9Zh3F8wistFy@Fmf zu$%kJozvv#Fh8uiKLqf1uW~`V)i`!drMI5|G~Yj3E*m2pi6}n1)ey+^szJ>#SnKE2|kMuU@}%2JY$0)aKGF*v)-W eSVkaE5AYlPzQIzLA71_d0000VK~#9!?UOM`0$~)#e|MeK=_MAlxduYmSP(&IwdvxJQ_$v6OK>!} zGzM)E4MJN>Q%h}<5kw$FK@kKsHins|4iaC3boia#rJ1z!w(ooI{r=zoy*v1izYfJE zCtUKPQ;zBcxZ7NB2a@il7blzqT?NGT&NhlyClv_Wo4;HsfRfMNH;Z&6ATCU^k?{Kg z>>~D2DEaI?3rkauE>t^wa4gX1^mwd98z)luM||Hp5ErJ2X6TNE4&xGuR0M$7%B*$Q z+^0DKMZGSaGsQdmh!j9*nu_KbK-1Lbd)gfYz?Tz4|6q6P*a8Sz|mH0^srafkOF( zee+P_sy~G%({aXwA?7BdQX;lGFOBV|0tAc^j3I;b+Z^R;i9-3MZJpL7*NWo%D>qM9 z02aJls8B7{q`IDVkW9xJ9`#x9rbYkGk^!R2GkE zgH`|l07ZIKSaefwW^{L9a%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zOEpYQOEoo2Offb|HZU?aOiE2kHc2&2Gc`6fvM@3*0|1;b2;sYr91Z{g002ovPDHLk FV1jh=2=V{` literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_convert_24.png b/gtk/stock-icons/stock_convert_24.png new file mode 100644 index 0000000000000000000000000000000000000000..e81e11db546211f7e6d5bb31c9947985809cef20 GIT binary patch literal 619 zcmV-x0+juUP)VK~#9!?UOM`0$~)#e|MeK=_MAlxduYmSP(&IwdvxJQ_$v6OK>!} zGzM)E4MJN>Q%h}<5kw$FK@kKsHins|4iaC3boia#rJ1z!w(ooI{r=zoy*v1izYfJE zCtUKPQ;zBcxZ7NB2a@il7blzqT?NGT&NhlyClv_Wo4;HsfRfMNH;Z&6ATCU^k?{Kg z>>~D2DEaI?3rkauE>t^wa4gX1^mwd98z)luM||Hp5ErJ2X6TNE4&xGuR0M$7%B*$Q z+^0DKMZGSaGsQdmh!j9*nu_KbK-1Lbd)gfYz?Tz4|6q6P*a8Sz|mH0^srafkOF( zee+P_sy~G%({aXwA?7BdQX;lGFOBV|0tAc^j3I;b+Z^R;i9-3MZJpL7*NWo%D>qM9 z02aJls8B7{q`IDVkW9xJ9`#x9rbYkGk^!R2GkE zgH`|l07ZIKSaefwW^{L9a%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zOEpYQOEoo2Offb|HZU?aOiE2kHc2&2Gc`6fvM@3*0|1;b2;sYr91Z{g002ovPDHLk FV1jh=2=V{` literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_copy.png b/gtk/stock-icons/stock_copy.png new file mode 100644 index 0000000000000000000000000000000000000000..c00e9d462d5e6dcc2f4b35171b89439d8e16e6fa GIT binary patch literal 603 zcmV-h0;K(kP)k9)vI8vzj0 zv6h(3xL&_QDs?`4URivZv7#tQCePq>{(y)f7~Hoi0stH<5mc*XR4PvxkGDWXAYv#K zE{%q^>6QkJM&D>Oo-rJLfrx>K5D4r602D6~_Po07ZIKSaefwW^{L9 za%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^ZD6Y&cNG!=r z&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}vq&{cGq*G`GB-*|Gcqzr pPEIv9H#bN!OSUwzG)pry1OSZ!2y%S>)?oku002ovPDHLkV1i+y{nr2h literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_copy_24.png b/gtk/stock-icons/stock_copy_24.png new file mode 100644 index 0000000000000000000000000000000000000000..c00e9d462d5e6dcc2f4b35171b89439d8e16e6fa GIT binary patch literal 603 zcmV-h0;K(kP)k9)vI8vzj0 zv6h(3xL&_QDs?`4URivZv7#tQCePq>{(y)f7~Hoi0stH<5mc*XR4PvxkGDWXAYv#K zE{%q^>6QkJM&D>Oo-rJLfrx>K5D4r602D6~_Po07ZIKSaefwW^{L9 za%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^ZD6Y&cNG!=r z&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}vq&{cGq*G`GB-*|Gcqzr pPEIv9H#bN!OSUwzG)pry1OSZ!2y%S>)?oku002ovPDHLkV1i+y{nr2h literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_cut.png b/gtk/stock-icons/stock_cut.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8c7ed14b49ab481f1a211633eae9189807a092 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJReUN$B>F! z$q5py761VtneoA* z^Th!bPvK?lnx^vwSFqJ#K(<{9 literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_cut_24.png b/gtk/stock-icons/stock_cut_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8c7ed14b49ab481f1a211633eae9189807a092 GIT binary patch literal 291 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJReUN$B>F! z$q5py761VtneoA* z^Th!bPvK?lnx^vwSFqJ#K(<{9 literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_down_arrow.png b/gtk/stock-icons/stock_down_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..f181a7131168d599e39c4e1d78231f4db8e7e0ad GIT binary patch literal 448 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 literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_index_24.png b/gtk/stock-icons/stock_index_24.png new file mode 100644 index 0000000000000000000000000000000000000000..1fd0f290b0cf79d0a677c23b416a750ac1dd18e4 GIT binary patch literal 554 zcmV+_0@eMAP)dCJG&*K!rs-MBbDjIt5)ibnMi%?I0Nldh#q@ zO7fsY;IV_0-Gn+M6<#8tzd&q3mwqfEnLl>BY=_uk*B#xpAGaP1d^5A(_vU?XmI3}@ z01IVJ{>|Exv>mR={irhIVMshNP7>o`P`W6NMMhOXE1pS((clF{*f@{}*4H-1B2q)9 zjl0T;oJobLdqc)>1%nOWBWsxByrU07`n-M8nLRY3I&nDQW0b7mEh0u37Vq9IXYPGfdBvi07*qoM6N<$f)$hUFaQ7m literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_jump_to.png b/gtk/stock-icons/stock_jump_to.png new file mode 100644 index 0000000000000000000000000000000000000000..880cf9a7e471dad009d8767f9a6bb98d64394958 GIT binary patch literal 611 zcmV-p0-XJcP)2EqY=Y5~w`@ZKK$SSK$ zC8U$2)oRu7S`@{&jFb$*;G=aNA09V~+eQ1pcwD2LRI5MP-lU|iiQ<|DG^G`+O^;?Y zA~n{5%W#axY9gTc0q7c@jM_!Q4rUg|I5F*Gab97*zhGf?3ILDQ1VFx~fCovAnV*}0 zFAVifsDtAYZ5^#BpYI&*o&E|4D1LkaB`pILz#-ouzdj&JMz+>=|G>R(K1Sx3V_tG@ zLh$1?vfGZ~>>A1LqOiCSfLqZ5K>zGg+z~_?sLm%VFJ2kvi;a8P41mKXA>P>0uk6s> z+wlvW&OcD)X9owD`k#%B)g6}Rbm4e4PVOH?dqqNJSvAe|t%O2foF5x`lAa@rO8SGw zdZt2cRU<`tB&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^Z zD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}voN+aG%+?Y xOf^YPOEgL{PBS%3F;6i!HAzaeFflf<1OSN@2xdQHY-Iod002ovPDHLkV1j|50{Q>| literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_jump_to_24.png b/gtk/stock-icons/stock_jump_to_24.png new file mode 100644 index 0000000000000000000000000000000000000000..880cf9a7e471dad009d8767f9a6bb98d64394958 GIT binary patch literal 611 zcmV-p0-XJcP)2EqY=Y5~w`@ZKK$SSK$ zC8U$2)oRu7S`@{&jFb$*;G=aNA09V~+eQ1pcwD2LRI5MP-lU|iiQ<|DG^G`+O^;?Y zA~n{5%W#axY9gTc0q7c@jM_!Q4rUg|I5F*Gab97*zhGf?3ILDQ1VFx~fCovAnV*}0 zFAVifsDtAYZ5^#BpYI&*o&E|4D1LkaB`pILz#-ouzdj&JMz+>=|G>R(K1Sx3V_tG@ zLh$1?vfGZ~>>A1LqOiCSfLqZ5K>zGg+z~_?sLm%VFJ2kvi;a8P41mKXA>P>0uk6s> z+wlvW&OcD)X9owD`k#%B)g6}Rbm4e4PVOH?dqqNJSvAe|t%O2foF5x`lAa@rO8SGw zdZt2cRU<`tB&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^Z zD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}voN+aG%+?Y xOf^YPOEgL{PBS%3F;6i!HAzaeFflf<1OSN@2xdQHY-Iod002ovPDHLkV1j|50{Q>| literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_last.png b/gtk/stock-icons/stock_last.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd28bfb73fb9734635fdf66541996c9a9b73f89 GIT binary patch literal 576 zcmV-G0>Ax{_v)_f$wIE;L|9mchf`mb01ppv15sv2|Cy3At9m-IJ%`M!WE*zXntYBt;zc-(n zPzF7W2V;~kpI06{v+eAHsb%7|*F(F}LG`Mh>Bdvb%r1~iMLe88uJsghsTf=T^`G5_ zf4~<~p}fxF5nY%7002dLR9JLVZ)S9NVRB^v0C?JS&`{R&%uP&B^-WCAOwLv?(KFC9 zQLwboH!#sRFjPn`$}BFabSSROEl4cMOwQNKFG>dhd}z zVRUtJWdHzp+Do!DNHQ}_wlGgjG)PUgFicG{GfFf{O|(c(N=r;MHUR*d>Ax{_v)_f$wIE;L|9mchf`mb01ppv15sv2|Cy3At9m-IJ%`M!WE*zXntYBt;zc-(n zPzF7W2V;~kpI06{v+eAHsb%7|*F(F}LG`Mh>Bdvb%r1~iMLe88uJsghsTf=T^`G5_ zf4~<~p}fxF5nY%7002dLR9JLVZ)S9NVRB^v0C?JS&`{R&%uP&B^-WCAOwLv?(KFC9 zQLwboH!#sRFjPn`$}BFabSSROEl4cMOwQNKFG>dhd}z zVRUtJWdHzp+Do!DNHQ}_wlGgjG)PUgFicG{GfFf{O|(c(N=r;MHUR*d>X1^@s6D=Y3@00006VoOIv0KEXc z0KI8K)u;df0b5B#K~#9!?bN$Vf>9X9@vpD18RR7|5Zy0!T_PHCYzt~@tAC=J`XkyJ z+k=)MT567nb;h!FIJs8lPz0tg_f+#@1FBoL)sDWQ~u3s*;ggonfO z{F*{U2>YWH-t!oi0f15p%Qk-m2q5RTrxdeA`g(mlWbY_fN*HFfZprlWWJAE!03g1- z#OVAWV?*Nvd;uKCLDzLO&5f?Pv6X|axyj_x9PJ!8>OyaXCQg!)Aj#(L29DokW@46* zKZxzvD5dDpJ=n@=`9yk?I~Ty&;YDqu0t2xqQzH|E`Xd;Yf!E{h2>7xQ!213wo}LV` zu^2&r5W_S(20lTT2Uh~HwpV2#K8IynZB(=u0c2%svFTs*YtUZ;-Te1_01ZrtDZ;I# zTL1t6MS4_NbW?9;ba!ELWdHzp+H=rQ*7VFxOi%SqOwUZtRxr^s&@)l6w9q#&(Kj$u zNG{4OE~#`VuFNe+EXhpH*UK+T2LOC(5BYfZ6v6-i05f`2SaefqXKrD1b#i3@0C?In zN=!~PGB-}LOioQSNlr8|OG`FMGPX1`HZ@5yOiE4!0G!zgaEFcx@c;k-07*qoM6N<$ Eg26lO#sB~S literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_left_arrow_24.png b/gtk/stock-icons/stock_left_arrow_24.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1fe9203a6521d4bc84ecda8dc6737c7b1c7384 GIT binary patch literal 566 zcmV-60?GY}P)X1^@s6D=Y3@00006VoOIv0KEXc z0KI8K)u;df0b5B#K~#9!?bN$Vf>9X9@vpD18RR7|5Zy0!T_PHCYzt~@tAC=J`XkyJ z+k=)MT567nb;h!FIJs8lPz0tg_f+#@1FBoL)sDWQ~u3s*;ggonfO z{F*{U2>YWH-t!oi0f15p%Qk-m2q5RTrxdeA`g(mlWbY_fN*HFfZprlWWJAE!03g1- z#OVAWV?*Nvd;uKCLDzLO&5f?Pv6X|axyj_x9PJ!8>OyaXCQg!)Aj#(L29DokW@46* zKZxzvD5dDpJ=n@=`9yk?I~Ty&;YDqu0t2xqQzH|E`Xd;Yf!E{h2>7xQ!213wo}LV` zu^2&r5W_S(20lTT2Uh~HwpV2#K8IynZB(=u0c2%svFTs*YtUZ;-Te1_01ZrtDZ;I# zTL1t6MS4_NbW?9;ba!ELWdHzp+H=rQ*7VFxOi%SqOwUZtRxr^s&@)l6w9q#&(Kj$u zNG{4OE~#`VuFNe+EXhpH*UK+T2LOC(5BYfZ6v6-i05f`2SaefqXKrD1b#i3@0C?In zN=!~PGB-}LOioQSNlr8|OG`FMGPX1`HZ@5yOiE4!0G!zgaEFcx@c;k-07*qoM6N<$ Eg26lO#sB~S literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_menu_print_preview.png b/gtk/stock-icons/stock_menu_print_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2949e4c0b89d730c3c8b74065072462644ab9795 GIT binary patch literal 636 zcmV-?0)zdDP)C__12&(t>!~4zq z{ds>r@V_C1Foh82S##-k~~Of{ykhc6Ls1 zI9v=2WJxBI0E9vz3BY=m?e6YXe79~hI$C8jCGq5G12$WQdv_De%{}|I10jUDvXW$G z#^AEEk2`}6C|699Yw&T|!u!Z6et(?6U~4^!^&2r13Nbb|hN37K#wiaTdg<~wn0o=n ziOG4{!pY|)=3hO>thv#3-SqiBRZp$|l37pQ!JQVEKmBzE)X zD3`m?yuF0OK~kv{bqDcyoZ;bNgb>7HF>c&!;q@DdtsM!M%feB?LTYmjvG#^%gOsCVh-EK;y60PbXeZ9Mc!)}%;^OVb1shsv9UrMvJ6`{p-?Pq~RB0)47Mbk9w zb~_#I2HN#Qip7g8FTZ7d{V}Vn398j9hlL`ls(x=l*L8DbWCT@JX=-Z1X0sv7GIqP2 z#>PfAHa5uRau|le{{B7(2L~vM!tCtqk2OwAOqlU_oP0iy)oP`=xtX@MHnz97$z(D( zolg4u`>EAxjE|3>eTllRo4H($U@%A~li~RIn9j~lrlzLwcs!C2!dzHb_}e%8NB9aE Wsq(sS`FQ;R0000G literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_menu_sort_descending.png b/gtk/stock-icons/stock_menu_sort_descending.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb9c0b8dab4f5e3ae5faf0c30ce686c5e279f5d GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DYhhUcNd2LAh=-f^2tDv$DS^Z zAr-fhQxxR>xF;DKDRTaM{`~px^@~@3l=l_fq~<0ezii^e!^in~e*3*k`tV`9>Z!0D z$M)CP8^lyqOni9q_3g>FMdIkUguSq;w=8 zGWt-#0vE3zbx#hTd5!{S^b{gM)q;yi%iLBX zid%A4Pa(jYx9?b7d{5uGKBCbm{`04(3WOp9&bw}^Hdl4RvwDiGo&w;>)8`Bi-(zC@ z0o`Z4yngl4a?{LH9IL5l6_*fTe?O1D`Gs6|lXQBGnd!$!?QCQHL)*&T1eE^3H47rp z({qMIB0*30X$vkO)aKAQ3uz(dK4hsW+_`-VHAQ(0Je;W`&L0j2ht8e1a=t=ZcvkjrhbyZZ}GQ_(byaJb*KR(A*Wik)x(sRA%L zIl;(CoKVPbJ5W`PrKLoZi&g?kFfw3eR)tEXf@zc}l=1+?<3j|4e!F^AwL~J33nY`X z4I(Wa02B*(O2yxlOC?ORjA0l6Y;FB?z}1=yOJr~`)>(@HbAusg%nA zjE;`mz{cHL^YhPa7arO~$tWNq#BSWRg#pQAeh>}^8bp?tQ^e!{+q&%R ze3xW$R%r91j}tOCH}hA(hu!_-@dp8592ey!5z_zw07ZIKSaefwW^{L9a%BJjc-nK& zP}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZ zY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}Gc`#xFf=qVHcCk`Gc>hGG&4vuOEEA? hG&4y~PDwR30RV*02z(?(T7m!o002ovPDHLkV1oAnV_g6M literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_paste_24.png b/gtk/stock-icons/stock_paste_24.png new file mode 100644 index 0000000000000000000000000000000000000000..1f1b94a504aa56405f7ab0c9bf7a732e93581e76 GIT binary patch literal 803 zcmV+;1Kj+HP)0vE3zbx#hTd5!{S^b{gM)q;yi%iLBX zid%A4Pa(jYx9?b7d{5uGKBCbm{`04(3WOp9&bw}^Hdl4RvwDiGo&w;>)8`Bi-(zC@ z0o`Z4yngl4a?{LH9IL5l6_*fTe?O1D`Gs6|lXQBGnd!$!?QCQHL)*&T1eE^3H47rp z({qMIB0*30X$vkO)aKAQ3uz(dK4hsW+_`-VHAQ(0Je;W`&L0j2ht8e1a=t=ZcvkjrhbyZZ}GQ_(byaJb*KR(A*Wik)x(sRA%L zIl;(CoKVPbJ5W`PrKLoZi&g?kFfw3eR)tEXf@zc}l=1+?<3j|4e!F^AwL~J33nY`X z4I(Wa02B*(O2yxlOC?ORjA0l6Y;FB?z}1=yOJr~`)>(@HbAusg%nA zjE;`mz{cHL^YhPa7arO~$tWNq#BSWRg#pQAeh>}^8bp?tQ^e!{+q&%R ze3xW$R%r91j}tOCH}hA(hu!_-@dp8592ey!5z_zw07ZIKSaefwW^{L9a%BJjc-nK& zP}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+KR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZ zY7hB%_7uVZ001+3R9JLVX=iR>bairN004N}Gc`#xFf=qVHcCk`Gc>hGG&4vuOEEA? hG&4y~PDwR30RV*02z(?(T7m!o002ovPDHLkV1oAnV_g6M literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_preferences.png b/gtk/stock-icons/stock_preferences.png new file mode 100644 index 0000000000000000000000000000000000000000..82b3eef0a7017f236a453a9d2a41dc1a54104a67 GIT binary patch literal 764 zcmVh$y!5dmO+e%?3NI@xtZW+p)aWmy&? zLM#?@C6r2~(JGX6vdjMd`&(P&aw{SPgFyhA%_abrWdRV6$MJ&aUVH@5yaYVm7B@Em z2!%ob%+Ah|&*uR+J3I4*dsfixcE?Kkaea+xnuNn)4h{||6bfWA832;WBz|z;-iwG5 z5!LB*RJ+|)?>07+h^TBf>+Fe$8aP+4pRfBK+kn@iZQK03xS*8F5nEm+FgFLl*4CDj zV;F|Zd979>l}f463cQA_B@zjA!(eS^hi}Kn^jj@g!YI5_sSpl_DHe;Pr^>fqs#>iQ zjYh{d48x%M^%aMQ1;@Fr>s(%br`c>_nxEL-e(A6SJ_1@gomRu23Lp}RPYF2&Vag^YaGn_7%&k>!cPQ0vej8q3cmPohz1>Ql89-0)Dd?Mx)UfbA1;9rwXqy z3}Yf^s@v4I?J?H_xHhH9sj5)*dfmBU{|0nSdhd}zVRUtJWdHzp+DlGJHZ?XhFg7$w uG&M0XGB7nXu(UKVFi)~DN;I=DGz9>GH3y2-rsGfm0000h$y!5dmO+e%?3NI@xtZW+p)aWmy&? zLM#?@C6r2~(JGX6vdjMd`&(P&aw{SPgFyhA%_abrWdRV6$MJ&aUVH@5yaYVm7B@Em z2!%ob%+Ah|&*uR+J3I4*dsfixcE?Kkaea+xnuNn)4h{||6bfWA832;WBz|z;-iwG5 z5!LB*RJ+|)?>07+h^TBf>+Fe$8aP+4pRfBK+kn@iZQK03xS*8F5nEm+FgFLl*4CDj zV;F|Zd979>l}f463cQA_B@zjA!(eS^hi}Kn^jj@g!YI5_sSpl_DHe;Pr^>fqs#>iQ zjYh{d48x%M^%aMQ1;@Fr>s(%br`c>_nxEL-e(A6SJ_1@gomRu23Lp}RPYF2&Vag^YaGn_7%&k>!cPQ0vej8q3cmPohz1>Ql89-0)Dd?Mx)UfbA1;9rwXqy z3}Yf^s@v4I?J?H_xHhH9sj5)*dfmBU{|0nSdhd}zVRUtJWdHzp+DlGJHZ?XhFg7$w uG&M0XGB7nXu(UKVFi)~DN;I=DGz9>GH3y2-rsGfm0000~} z&$0#W#asIaNU8sVtcR_CfG3wK8x0ZB^d?x^B&HG5bd7Z-48dFJNk-iW%E-3brFE7b~Ksms4FRI~X~oxg0T z7caKe^z`&~Sxl&P3(w_pJbL&5Aq7GRqzlvFg`x6^1C|- z`7iiwcCbZEG*D!wHO!}Ac`UqiA3z58`r+SOQllyzTcU|G);sMR4NsYkB=!9i}dyNVHgHS zM@K9!E^>BuhNfxQwvA<3wA*dU&qXqwh(W?2^7+uKyD zRW>#@xVX5$_kDC-N7FRIFr?jX#~Q>0mzS6LzE7=IV|8^E(=-_z93-2~lF4L{Qj$z2 zJMG@UgCM}RZ4ASpP$<0j9w>m>*;x$3z_KjDFeC^9lu{&+J6CVwxsfTU+ntbo-j#ko^b7$Hemw&N_zhRS>}s0000*dQ@0+Q*UN;cVTj6 z004N}bI?%M^vq36PxVbq&rHr%Fwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I z%P&d?0DNi>`FQpe!T?(ZeetFa%BJjc-k{EPBcw1Ff=hwPD(ULN;b1F nGBZz0GqOxdNl8ggOSAw0lNJekif=oZ00000NkvXXu0mjfeXzxU literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_print_24.png b/gtk/stock-icons/stock_print_24.png new file mode 100644 index 0000000000000000000000000000000000000000..5213dff9e3c56eed5c1494616f906fe93eca492c GIT binary patch literal 965 zcmV;$13LVPP)~} z&$0#W#asIaNU8sVtcR_CfG3wK8x0ZB^d?x^B&HG5bd7Z-48dFJNk-iW%E-3brFE7b~Ksms4FRI~X~oxg0T z7caKe^z`&~Sxl&P3(w_pJbL&5Aq7GRqzlvFg`x6^1C|- z`7iiwcCbZEG*D!wHO!}Ac`UqiA3z58`r+SOQllyzTcU|G);sMR4NsYkB=!9i}dyNVHgHS zM@K9!E^>BuhNfxQwvA<3wA*dU&qXqwh(W?2^7+uKyD zRW>#@xVX5$_kDC-N7FRIFr?jX#~Q>0mzS6LzE7=IV|8^E(=-_z93-2~lF4L{Qj$z2 zJMG@UgCM}RZ4ASpP$<0j9w>m>*;x$3z_KjDFeC^9lu{&+J6CVwxsfTU+ntbo-j#ko^b7$Hemw&N_zhRS>}s0000*dQ@0+Q*UN;cVTj6 z004N}bI?%M^vq36PxVbq&rHr%Fwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I z%P&d?0DNi>`FQpe!T?(ZeetFa%BJjc-k{EPBcw1Ff=hwPD(ULN;b1F nGBZz0GqOxdNl8ggOSAw0lNJekif=oZ00000NkvXXu0mjfeXzxU literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_print_preview.png b/gtk/stock-icons/stock_print_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8f64b5179eb1a32e94d3d88dea606fbbd5f76c GIT binary patch literal 900 zcmV-~1AF|5P)HnO+5zI&5ED_OAs9abiby12 zOiWzNgvCghu)&X|@jo!E+_{v@W@3iKWKuO#Mk^g4giKhOP#EkCabTR=j|;uD*Y+GY zQl}0juy8j|a+dG!dC&8{=fD&F50d|!6G=S{xxM{qY1{j(uC6jMF(D(7_EVW1tN6Jw z3HK#@Bw<{_S27$f%7ukr<qI6GhbZ%v+p)*3G-aRXWZYs4f@&Gj3jf;V;(LRp!3exP5#7 zF*tyB95@sTOVj+B*WNhGt9_FGw`)`_iG2VF_AXipa*xlVF9*+ZY@_B>1 z_Y^koDOeWRWhmtp9_%QTECo>M>g-~Adb+_l%0SM{%#chb>Fn$z7z|<<25^~$On`Kz z&hJ~`)S*;@eOsaGc)5E=11=JH>J_rtEImCvO&vGQprfOMy}dnBsT845h(sd6$kB~q48EtZn0|-y{teu2H@&^RWHOlsyUAd3a*|vwM=TbjzrP=! z&xa5KAq0w|;?lg>fLZJ}RXq5T+c~n)!vMdb4pja%D&1V1m43t)XQDct>1_p>mqd1O3AP}If ztqmarYinziN+on%XL)(~(S}d`*)vpR-7<-j8XQ@8$|j$v awf+Wr3QmorM!Mwy0000C__12&(t>!~4zq z{ds>r@V_C1Foh82S##-k~~Of{ykhc6Ls1 zI9v=2WJxBI0E9vz3BY=m?e6YXe79~hI$C8jCGq5G12$WQdv_De%{}|I10jUDvXW$G z#^AEEk2`}6C|699Yw&T|!u!Z6et(?6U~4^!^&2r13Nbb|hN37K#wiaTdg<~wn0o=n ziOG4{!pY|)=3hO>thv#3-SqiBRZp$|l37pQ!JQVEKmBzE)X zD3`m?yuF0OK~kv{bqDcyoZ;bNgb>7HF>c&!;q@DdtsM!M%feB?LTYmjvG#^%gOsCVh-EK;y60PbXeZ9Mc!)}%;^OVb1shsv9UrMvJ6`{p-?Pq~RB0)47Mbk9w zb~_#I2HN#Qip7g8FTZ7d{V}Vn398j9hlL`ls(x=l*L8DbWCT@JX=-Z1X0sv7GIqP2 z#>PfAHa5uRau|le{{B7(2L~vM!tCtqk2OwAOqlU_oP0iy)oP`=xtX@MHnz97$z(D( zolg4u`>EAxjE|3>eTllRo4H($U@%A~li~RIn9j~lrlzLwcs!C2!dzHb_}e%8NB9aE Wsq(sS`FQ;R0000G literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_print_preview_24.png b/gtk/stock-icons/stock_print_preview_24.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8f64b5179eb1a32e94d3d88dea606fbbd5f76c GIT binary patch literal 900 zcmV-~1AF|5P)HnO+5zI&5ED_OAs9abiby12 zOiWzNgvCghu)&X|@jo!E+_{v@W@3iKWKuO#Mk^g4giKhOP#EkCabTR=j|;uD*Y+GY zQl}0juy8j|a+dG!dC&8{=fD&F50d|!6G=S{xxM{qY1{j(uC6jMF(D(7_EVW1tN6Jw z3HK#@Bw<{_S27$f%7ukr<qI6GhbZ%v+p)*3G-aRXWZYs4f@&Gj3jf;V;(LRp!3exP5#7 zF*tyB95@sTOVj+B*WNhGt9_FGw`)`_iG2VF_AXipa*xlVF9*+ZY@_B>1 z_Y^koDOeWRWhmtp9_%QTECo>M>g-~Adb+_l%0SM{%#chb>Fn$z7z|<<25^~$On`Kz z&hJ~`)S*;@eOsaGc)5E=11=JH>J_rtEImCvO&vGQprfOMy}dnBsT845h(sd6$kB~q48EtZn0|-y{teu2H@&^RWHOlsyUAd3a*|vwM=TbjzrP=! z&xa5KAq0w|;?lg>fLZJ}RXq5T+c~n)!vMdb4pja%D&1V1m43t)XQDct>1_p>mqd1O3AP}If ztqmarYinziN+on%XL)(~(S}d`*)vpR-7<-j8XQ@8$|j$v awf+Wr3QmorM!Mwy0000$gPK4X&@hCL<#O86ABk+1c6hi~Rto^+eIq(tz8Y zgVq{j6iOK^%iwYyO2m-io?7;J8UU0|0hZ?Gn+y&0;&$h(EQ%lkfxv6DRK#+p_5H4zPK1It2y!7-O()o9^xaWn~_;R%B%4kO-bsU}|a# zr4)XD89rYzUT+BwhmCDpI2;ZhK74}Te;ms)DdEW?LhG-qncLX5gXQHVoX$;jcJ={K zS?R?X!0-;KAT56B9wErx%DuBUD$PiLn#Tz~$PGF$S-<7-I~^tQdWMr;3ZGcK&!oym)bs z*4F!L&IW^_U(NtPMn_+wlv;hg2FtS8u_KSArDYl$ucMSgskO&zYR<=TlM3|o+-3J} z7XTd{eMBO&M5FU~JV()5#{_b7_c1;mV%M%?sd({KUS2NY@Ed7rx*?O3Z)JM=z0AxE z$=uuriAF!l{QM`GoBJSFu3QjOd|6W|%IDATRyzf)b*yuMaCmZEU8njVsLag$7_%~i zAMnM+FFbhA_4|<|bJ5k+8jEFcutR*ll9Z8bNF*BlD9z0ce;vF=dhd}zVRUtJWdHzp z+OsrBG)PM|G&D>zH@7rOPBu3&F|kN9HcL)2FflVSGXMaJ^aw9PEH&5w0000JEkiD literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_properties_24.png b/gtk/stock-icons/stock_properties_24.png new file mode 100644 index 0000000000000000000000000000000000000000..5b638a6908a0fa8c21762ab2a0581f5aeaa80eaf GIT binary patch literal 932 zcmV;V16%xwP)$gPK4X&@hCL<#O86ABk+1c6hi~Rto^+eIq(tz8Y zgVq{j6iOK^%iwYyO2m-io?7;J8UU0|0hZ?Gn+y&0;&$h(EQ%lkfxv6DRK#+p_5H4zPK1It2y!7-O()o9^xaWn~_;R%B%4kO-bsU}|a# zr4)XD89rYzUT+BwhmCDpI2;ZhK74}Te;ms)DdEW?LhG-qncLX5gXQHVoX$;jcJ={K zS?R?X!0-;KAT56B9wErx%DuBUD$PiLn#Tz~$PGF$S-<7-I~^tQdWMr;3ZGcK&!oym)bs z*4F!L&IW^_U(NtPMn_+wlv;hg2FtS8u_KSArDYl$ucMSgskO&zYR<=TlM3|o+-3J} z7XTd{eMBO&M5FU~JV()5#{_b7_c1;mV%M%?sd({KUS2NY@Ed7rx*?O3Z)JM=z0AxE z$=uuriAF!l{QM`GoBJSFu3QjOd|6W|%IDATRyzf)b*yuMaCmZEU8njVsLag$7_%~i zAMnM+FFbhA_4|<|bJ5k+8jEFcutR*ll9Z8bNF*BlD9z0ce;vF=dhd}zVRUtJWdHzp z+OsrBG)PM|G&D>zH@7rOPBu3&F|kN9HcL)2FflVSGXMaJ^aw9PEH&5w0000JEkiD literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_redo.png b/gtk/stock-icons/stock_redo.png new file mode 100644 index 0000000000000000000000000000000000000000..e3595903223976a720d104d65c9162b4db06bc02 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZO{4r;B4q z#jWH73D(643J2?xL<}$95(?7&!GG9}(~Kwa<~bJKM3tjU^%B!~WMXo7a^9@r0Rfpg zYk2JU{ZET9FShsF9MNHTNA*lkBM>B>Ulm+%a6yTCoBjU(k4)#hNH8qF+Q!Pe?ZG0B z2S#%m8@bwok4~MU7QBjK70b~D8&X7ini!cFI>pr01*BRx0G;Go6%tVroS#-wo>-L1 zz)*3k_(H(7FK2vx{J;A8ocB2wW^mE?f^p!6Ef>rUE}9#Jc<7zd(OX%fvF?nnht5f# zbJtJnd$BXrWbyy3_$G1)XrM9Jz|8c##FA2oiQZdGj0`-C3_Xp_486U44Gp&&c=;Ha jn;02+n3;GPd$KZgGjr6bP0l+XkKnT&pZ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_redo_24.png b/gtk/stock-icons/stock_redo_24.png new file mode 100644 index 0000000000000000000000000000000000000000..e3595903223976a720d104d65c9162b4db06bc02 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZO{4r;B4q z#jWH73D(643J2?xL<}$95(?7&!GG9}(~Kwa<~bJKM3tjU^%B!~WMXo7a^9@r0Rfpg zYk2JU{ZET9FShsF9MNHTNA*lkBM>B>Ulm+%a6yTCoBjU(k4)#hNH8qF+Q!Pe?ZG0B z2S#%m8@bwok4~MU7QBjK70b~D8&X7ini!cFI>pr01*BRx0G;Go6%tVroS#-wo>-L1 zz)*3k_(H(7FK2vx{J;A8ocB2wW^mE?f^p!6Ef>rUE}9#Jc<7zd(OX%fvF?nnht5f# zbJtJnd$BXrWbyy3_$G1)XrM9Jz|8c##FA2oiQZdGj0`-C3_Xp_486U44Gp&&c=;Ha jn;02+n3;GPd$KZgGjr6bP0l+XkKnT&pZ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_refresh.png b/gtk/stock-icons/stock_refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..81951b6fb62d1fc0d587fa5b29e40b28299d5496 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZTecPZ!6K zid%0dTXP+95OM9F_=7n-N!xR>n$*UPUJ426(+`R6WaSQ5xUpMS@ma8qwqsI~(PGV( z7zv5C%J2Jr+g*5gUttxa+w3P=OhWIb=aiibeo>iqG27{#yWZlBo<-*wPh6U#a?V12 zy_U^Zz9ap2uD?0Tt^3hw^~Tvjj}GniQ2Ca%Ojp78eu+y6v)2FBJuAhuSj7&;EcIDn z=(&mG+0x#pdw;&-W9ZrUaa&B?lTG(-tv@1fyneGPL){Z5gPDCD`J9onj3s8x;S*nb zDTI?#VfNh5UyDpdvw7D}D*s_CH}`tjzIjW$Qh*+HtqO@K3C>R|DNig)WniedReT}f z+LtrFKK@^Qea`!w3p2QAe8D(y!FBL2(O7pz*F)!|&$;WT^}W~` zYO?r$R(umV1T@eXY+z=3USdfp#6)8+Z(|=b1Ji9LW@g(AOgEWq@i8^@@Z92K;=RSh cz{H%Lp*5O=O^J1e6Hq&Yr>mdKI;Vst0O3Hdx&QzG literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_refresh_24.png b/gtk/stock-icons/stock_refresh_24.png new file mode 100644 index 0000000000000000000000000000000000000000..81951b6fb62d1fc0d587fa5b29e40b28299d5496 GIT binary patch literal 440 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZTecPZ!6K zid%0dTXP+95OM9F_=7n-N!xR>n$*UPUJ426(+`R6WaSQ5xUpMS@ma8qwqsI~(PGV( z7zv5C%J2Jr+g*5gUttxa+w3P=OhWIb=aiibeo>iqG27{#yWZlBo<-*wPh6U#a?V12 zy_U^Zz9ap2uD?0Tt^3hw^~Tvjj}GniQ2Ca%Ojp78eu+y6v)2FBJuAhuSj7&;EcIDn z=(&mG+0x#pdw;&-W9ZrUaa&B?lTG(-tv@1fyneGPL){Z5gPDCD`J9onj3s8x;S*nb zDTI?#VfNh5UyDpdvw7D}D*s_CH}`tjzIjW$Qh*+HtqO@K3C>R|DNig)WniedReT}f z+LtrFKK@^Qea`!w3p2QAe8D(y!FBL2(O7pz*F)!|&$;WT^}W~` zYO?r$R(umV1T@eXY+z=3USdfp#6)8+Z(|=b1Ji9LW@g(AOgEWq@i8^@@Z92K;=RSh cz{H%Lp*5O=O^J1e6Hq&Yr>mdKI;Vst0O3Hdx&QzG literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_remove.png b/gtk/stock-icons/stock_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..23cd2d2a46bb7859d1a401cd4cacc9ece8680f3a GIT binary patch literal 531 zcmV+u0_^>XP)xF=$g!6o$XVK4ZZ}NU3%x0TU9tSac{NLZO2lx>!vNobK)pI!j+O)x*-Vn(2>u`d_ zUg@D3*bI{y91F3syx3XS zY8EeEy<>KEhJ3!H2s)+GodMBEjOt#Qie(XhnEs2XQr+jx#z&^7r&wCLql3|BP~9s# z6rT_FdGt6-Hk0J&TZ3Tm5|PMNhmUFI+-J})H?Pn0Wp|4kx9*b5nQpgv>nG=pfERb~ z1pgvhg6*A8{HQlv12vmJ2kLca;7dP!E&w(QZ<&i;8w!4SSffzb^h5yd8|J_NV6C-o zKI8Vn0y9@GI~*+QE5+h_wNwvG+gXQ+0L1H;>jDso#A^RPL0f81-Bbc987bni$tj!i VgU)-PjDP?D002ovPDHLkV1go~>&yTE literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_remove_24.png b/gtk/stock-icons/stock_remove_24.png new file mode 100644 index 0000000000000000000000000000000000000000..23cd2d2a46bb7859d1a401cd4cacc9ece8680f3a GIT binary patch literal 531 zcmV+u0_^>XP)xF=$g!6o$XVK4ZZ}NU3%x0TU9tSac{NLZO2lx>!vNobK)pI!j+O)x*-Vn(2>u`d_ zUg@D3*bI{y91F3syx3XS zY8EeEy<>KEhJ3!H2s)+GodMBEjOt#Qie(XhnEs2XQr+jx#z&^7r&wCLql3|BP~9s# z6rT_FdGt6-Hk0J&TZ3Tm5|PMNhmUFI+-J})H?Pn0Wp|4kx9*b5nQpgv>nG=pfERb~ z1pgvhg6*A8{HQlv12vmJ2kLca;7dP!E&w(QZ<&i;8w!4SSffzb^h5yd8|J_NV6C-o zKI8Vn0y9@GI~*+QE5+h_wNwvG+gXQ+0L1H;>jDso#A^RPL0f81-Bbc987bni$tj!i VgU)-PjDP?D002ovPDHLkV1go~>&yTE literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_revert.png b/gtk/stock-icons/stock_revert.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef47a89ed5cf813a6979f8ac8a8ab8bd6e4db1b GIT binary patch literal 879 zcmV-#1CacQP)wZD+GTL@%6+ z^YT8=^FHVKz61ZT#GfEh|4niL)fUKA{6cL8#j?3-)2yPfIs#a!1R%?y%cn*^zLxLDG6!o3mqGMoK z*gwq(S(ZZ{An1M0xulpyNCsp5y*L(}q$VeX3`>%PEX%f@b(zU7 zE(viF=^oH(Y^9;6pYLuD3(G51K6yz^hXt$AKw*+ZZ(9qN_NT-zehI>D&O+%}iTciN z?6dO#*t*O#R#%asOY=MOc<}jr^bWtH?m+{2rI)c94Y+1!_&PQk;8rUL@OEUB)CB)& zx>tDveY%d4s})QyIuSy!wzfv@5j~~FXZ@m!a~tG=QW8+L+`h@)T{{7&y8n>%^>wD- zkMpQ+h-J4MwOY-@#034rHkvESm>e0}*gWuMqTM`k>dJMp3X1$9XL3nNO2qPJfE;}$ zEze)jZg`B{ZjXg4vdGcm3!=QqBuB&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zvoyA_G)y&1O*AsIG*3!0H8V3bH83|yHc2y1GBry|0|1802yrtnrECBI002ovPDHLk FV1l>tkmdjY literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_revert_24.png b/gtk/stock-icons/stock_revert_24.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef47a89ed5cf813a6979f8ac8a8ab8bd6e4db1b GIT binary patch literal 879 zcmV-#1CacQP)wZD+GTL@%6+ z^YT8=^FHVKz61ZT#GfEh|4niL)fUKA{6cL8#j?3-)2yPfIs#a!1R%?y%cn*^zLxLDG6!o3mqGMoK z*gwq(S(ZZ{An1M0xulpyNCsp5y*L(}q$VeX3`>%PEX%f@b(zU7 zE(viF=^oH(Y^9;6pYLuD3(G51K6yz^hXt$AKw*+ZZ(9qN_NT-zehI>D&O+%}iTciN z?6dO#*t*O#R#%asOY=MOc<}jr^bWtH?m+{2rI)c94Y+1!_&PQk;8rUL@OEUB)CB)& zx>tDveY%d4s})QyIuSy!wzfv@5j~~FXZ@m!a~tG=QW8+L+`h@)T{{7&y8n>%^>wD- zkMpQ+h-J4MwOY-@#034rHkvESm>e0}*gWuMqTM`k>dJMp3X1$9XL3nNO2qPJfE;}$ zEze)jZg`B{ZjXg4vdGcm3!=QqBuB&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zvoyA_G)y&1O*AsIG*3!0H8V3bH83|yHc2y1GBry|0|1802yrtnrECBI002ovPDHLk FV1l>tkmdjY literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_right_arrow.png b/gtk/stock-icons/stock_right_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..d16216cada9e660220f957e658fbc10f17025320 GIT binary patch literal 551 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3I+y7A5Ry@ zkcwMxFYokYa+Ep#@%=fyGBYhssebkaTfb-4$k#G*OY7$7ywS+vP*jl;x+dVDC)g>r zTUzX9way+XF|mHPpQ^!UCjM9dKa)r2(|YCm$F?gi%Po_OwrBHw&fdM~P7Zr}g=iQkXqPuN4(e-UvEB2r7G4V3?XCTP~OzTr@Wb@z6V^qqnj|W8E2D z51o@f=dPdD_hM(L$>RT6@lE6q&_H9bftl%fi6x~F6OFeRm>T#Rd2jPDHuLb?Vq#+A nXX@>1w$;bT%+t@y)Q6FwJD%fpc-j6opmqjNS3j3^P6r zTUzX9way+XF|mHPpQ^!UCjM9dKa)r2(|YCm$F?gi%Po_OwrBHw&fdM~P7Zr}g=iQkXqPuN4(e-UvEB2r7G4V3?XCTP~OzTr@Wb@z6V^qqnj|W8E2D z51o@f=dPdD_hM(L$>RT6@lE6q&_H9bftl%fi6x~F6OFeRm>T#Rd2jPDHuLb?Vq#+A nXX@>1w$;bT%+t@y)Q6FwJD%fpc-j6opmqjNS3j3^P6k(5I%iLOnIlo=Ky z3{8m!1|nUReF%OeSq&TxElZF|4(3J5a*@s4aF!5$kXcU64czhT?P5&YbZP2U^n-JA zIPdcue*Zr&{EvS`;0yU?!W|~{GRb-cA^;>DCN+lk&zn+#P}S;1Y@*U95e}1D+$&BA zl>R-q(=j0Q=67OjVp6DT^_v3s19v(Ggd|B~YTC77_=;fPvk|xegr?CTnl094;FaJ} zN8{Ek5oHFGXtr2|eQ;z6So82sQ25xy)Y2@1LH*XWud9QB@d+X$!T``#my>lR4*-Qi zfo~NHN{vX8gj_BIAU07+Fv;%%+2fL1?1>1)Gdt(^(fijLin8}{NLfiisgc3q0mfZ! zZoFs(AR#+9Xf3k9no=(35ubd9>!(i;qEMi%F6U~IhS}LUe!ASaC5hr@BLKEGuOK!x z4a>6{Y;R1>MEq1pq&slei^`{Du|)%sMSwB{$onqKQdL#@5zK zLUyiC5PSx{)a&Z0XzyZr#>3f675NP<6gL|&>$E7t6?8P#VQhL%sPn7exs_%iW95i4 zg9-cS_oXVTG=&_9+6#ck<6(Y&o(}6rN*+{jEIkvmPRr!z2;cg8{kTCdyAM6RM22~{ z>2AK7=>1WoUCd$FIe`#@g@py;4@Z-pdde$xj``rLR|LrFZeC;8j%@%G-mheFagpIq z4yrr5am~yim&@tz@2AUZ<4MkWzVvka{@kyXU=;y~;}P13&mKYiu61OX=magfw0M=p_>pb_5kFcHL zYODYN07ZIKSaefwW^{L9a%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zvotlcFf&X}G&8d_GD|TsvM{u?NHb0~Pf0RMO)*GG1ptHG2&xPB0H6Q>002ovPDHLk FV1je>iGu(D literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_save_as_24.png b/gtk/stock-icons/stock_save_as_24.png new file mode 100644 index 0000000000000000000000000000000000000000..13cc1bffd8add10dc8b5a48e82555c3aad5034f5 GIT binary patch literal 879 zcmV-#1CacQP)k(5I%iLOnIlo=Ky z3{8m!1|nUReF%OeSq&TxElZF|4(3J5a*@s4aF!5$kXcU64czhT?P5&YbZP2U^n-JA zIPdcue*Zr&{EvS`;0yU?!W|~{GRb-cA^;>DCN+lk&zn+#P}S;1Y@*U95e}1D+$&BA zl>R-q(=j0Q=67OjVp6DT^_v3s19v(Ggd|B~YTC77_=;fPvk|xegr?CTnl094;FaJ} zN8{Ek5oHFGXtr2|eQ;z6So82sQ25xy)Y2@1LH*XWud9QB@d+X$!T``#my>lR4*-Qi zfo~NHN{vX8gj_BIAU07+Fv;%%+2fL1?1>1)Gdt(^(fijLin8}{NLfiisgc3q0mfZ! zZoFs(AR#+9Xf3k9no=(35ubd9>!(i;qEMi%F6U~IhS}LUe!ASaC5hr@BLKEGuOK!x z4a>6{Y;R1>MEq1pq&slei^`{Du|)%sMSwB{$onqKQdL#@5zK zLUyiC5PSx{)a&Z0XzyZr#>3f675NP<6gL|&>$E7t6?8P#VQhL%sPn7exs_%iW95i4 zg9-cS_oXVTG=&_9+6#ck<6(Y&o(}6rN*+{jEIkvmPRr!z2;cg8{kTCdyAM6RM22~{ z>2AK7=>1WoUCd$FIe`#@g@py;4@Z-pdde$xj``rLR|LrFZeC;8j%@%G-mheFagpIq z4yrr5am~yim&@tz@2AUZ<4MkWzVvka{@kyXU=;y~;}P13&mKYiu61OX=magfw0M=p_>pb_5kFcHL zYODYN07ZIKSaefwW^{L9a%BJjc-nK&P}cO!O-xVqO-#>B&Q>tdGte_pu(Z%OFwr+K zR7ft$EH0^ZD6Y&cNG!=r&ezK?N(TUZY7hB%_7uVZ001+3R9JLVX=iR>bairN004N} zvotlcFf&X}G&8d_GD|TsvM{u?NHb0~Pf0RMO)*GG1ptHG2&xPB0H6Q>002ovPDHLk FV1je>iGu(D literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_search.png b/gtk/stock-icons/stock_search.png new file mode 100644 index 0000000000000000000000000000000000000000..db208134a3b3f7c3dfc644651a1cb4d75824ab94 GIT binary patch literal 945 zcmV;i15W&jP)C2o)C2F~ z_v80`KRn;(d44bOzXqlIA-{w$jg7s$5F~A3i=~%5o;mV*7f7vErv+f?STQ_22#ux; zoO1}lz?gtcCZJMPq}1R^gvn+bfZP2M8ckW`B@u`K&H>ID#>Zc!v`Q9Fyt}&_KA#U7 zO&N&7QBfAHfP?eM(Q0p_yu2JsOG_84z-%_dI%VaVLAs~dn^t3f; z6>$M_xg1kd@6g-(9HCGM;cz$#5Kt%-5JE(u3_=JD4GkoO#07Bv9gH1=NRFAAMT9~> zu(swwOUn}!6;+|I@GhE~9>L{W1!D{*lkuWWW@v6UqoKhFy}l9~8{g2=^9+rR4=_Lf z7IynEYHO>}(eV_^%Wg2nAW5FMRm274dn(S5`u7tFlgUIr-&fk(Tc-W}6>>P< zP+gs#l*&v}DllRk z5InZIj4=d*$C#L~pNju!$%XF-vfE$N;o%zj{p;j(zNh+nLn2F3+LaLE_pg)9HkeNG zr2v1G_|M}P$*Llq9g(`)0000*dQ@0+Q*UN;cVTj6004N}bI?%M^vq36PxVbq&rHr% zFwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I%P&d?0DNi>`FQpe!T?(ZeetFa%BJjc-pf_Nij|{GfXj0Hcd)4N-;AsH#as(PBSzxF-o;aHZTGJmJA5K T1ya=t00000NkvXXu0mjff=;S} literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_search_24.png b/gtk/stock-icons/stock_search_24.png new file mode 100644 index 0000000000000000000000000000000000000000..db208134a3b3f7c3dfc644651a1cb4d75824ab94 GIT binary patch literal 945 zcmV;i15W&jP)C2o)C2F~ z_v80`KRn;(d44bOzXqlIA-{w$jg7s$5F~A3i=~%5o;mV*7f7vErv+f?STQ_22#ux; zoO1}lz?gtcCZJMPq}1R^gvn+bfZP2M8ckW`B@u`K&H>ID#>Zc!v`Q9Fyt}&_KA#U7 zO&N&7QBfAHfP?eM(Q0p_yu2JsOG_84z-%_dI%VaVLAs~dn^t3f; z6>$M_xg1kd@6g-(9HCGM;cz$#5Kt%-5JE(u3_=JD4GkoO#07Bv9gH1=NRFAAMT9~> zu(swwOUn}!6;+|I@GhE~9>L{W1!D{*lkuWWW@v6UqoKhFy}l9~8{g2=^9+rR4=_Lf z7IynEYHO>}(eV_^%Wg2nAW5FMRm274dn(S5`u7tFlgUIr-&fk(Tc-W}6>>P< zP+gs#l*&v}DllRk z5InZIj4=d*$C#L~pNju!$%XF-vfE$N;o%zj{p;j(zNh+nLn2F3+LaLE_pg)9HkeNG zr2v1G_|M}P$*Llq9g(`)0000*dQ@0+Q*UN;cVTj6004N}bI?%M^vq36PxVbq&rHr% zFwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I%P&d?0DNi>`FQpe!T?(ZeetFa%BJjc-pf_Nij|{GfXj0Hcd)4N-;AsH#as(PBSzxF-o;aHZTGJmJA5K T1ya=t00000NkvXXu0mjff=;S} literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_search_replace.png b/gtk/stock-icons/stock_search_replace.png new file mode 100644 index 0000000000000000000000000000000000000000..895201d14e35ec79cc578fdd76db62d5dfedef8a GIT binary patch literal 1004 zcmV1bI#@tpc_<8HLH0& z#Qe?2nyi|OFU;|MelyR^^A3ClC2v>W(w{0G3Y?+kqIU+gEW4d8E-e?mi=N>zRFt9A^cxTn zN=m8;16wq@tn>ktsw#YsLSO+k98Ig;GyD0IAd<2M?ZP zU|?WLfSL_RBoZ7sa+u4P&$3~|7dRYFv{sat*DyJmV{|l#F$Rajfz}F_t8Bi;f|`>9 zr_)Jy_wO_}UnQ5zF*P-X)|yD9mw5ak#u&8LXss~DaQ%9#ZEHaQtzV+l3q+js^z@U< zO%e`AId$rLwr$(X)~$P}t2@ikPza?IK40yU7R^ht;>3w>IC``ekEe@fH5|Ayb+MNLgLjg3DrI5><_3d@QvdWty!muo$>wYzb<_p*9*F>P%foIZUVueXLx zn|AW*)oZqI--6HQ<;s;-l$y3b5V-kX$Q;0h3ypX@U$b)M3bfYr_V!a%^%d*ZeaY}} zKbDnYVj{zuH7){ydv;%C@zw<)oC<5*CNfyo^vY(l z3wC47{mGV^>lRHBp7@|I&G0oTReLfr={f@cklkm=xAa_T(LwR?DF}1l1%<9snnp1 zjXjb;;8!_tz#~OPtE8xCmAKt*X=rG$r|MFA`Ka>z`4CDel;Ul$wEbd|$uV~9s4he& zzeRvryS5x-w4Gd~6xr+x?%eUuh|jm=gU7b`{lCcgcv#Zuhy;Uw$e}~;9nl5bwV*Mb zj!0)`dm+sq{rPdhd}zVRUtJWdHzp+Do-CO|>*LO-r*dO*BqTO*S)5Nis_`OfxqzH8xH& aGzS2gvIz&oo`gmK00001bI#@tpc_<8HLH0& z#Qe?2nyi|OFU;|MelyR^^A3ClC2v>W(w{0G3Y?+kqIU+gEW4d8E-e?mi=N>zRFt9A^cxTn zN=m8;16wq@tn>ktsw#YsLSO+k98Ig;GyD0IAd<2M?ZP zU|?WLfSL_RBoZ7sa+u4P&$3~|7dRYFv{sat*DyJmV{|l#F$Rajfz}F_t8Bi;f|`>9 zr_)Jy_wO_}UnQ5zF*P-X)|yD9mw5ak#u&8LXss~DaQ%9#ZEHaQtzV+l3q+js^z@U< zO%e`AId$rLwr$(X)~$P}t2@ikPza?IK40yU7R^ht;>3w>IC``ekEe@fH5|Ayb+MNLgLjg3DrI5><_3d@QvdWty!muo$>wYzb<_p*9*F>P%foIZUVueXLx zn|AW*)oZqI--6HQ<;s;-l$y3b5V-kX$Q;0h3ypX@U$b)M3bfYr_V!a%^%d*ZeaY}} zKbDnYVj{zuH7){ydv;%C@zw<)oC<5*CNfyo^vY(l z3wC47{mGV^>lRHBp7@|I&G0oTReLfr={f@cklkm=xAa_T(LwR?DF}1l1%<9snnp1 zjXjb;;8!_tz#~OPtE8xCmAKt*X=rG$r|MFA`Ka>z`4CDel;Ul$wEbd|$uV~9s4he& zzeRvryS5x-w4Gd~6xr+x?%eUuh|jm=gU7b`{lCcgcv#Zuhy;Uw$e}~;9nl5bwV*Mb zj!0)`dm+sq{rPdhd}zVRUtJWdHzp+Do-CO|>*LO-r*dO*BqTO*S)5Nis_`OfxqzH8xH& aGzS2gvIz&oo`gmK00007_SA4 zEls@)39+#ZfByYt;N{?BVEFfs;o{z#4EOFnLU%1A1A$zO5Bv{{_WM6?*R20GPUd(c z5ufV`S`wESLNmjW4WP(yO41=NgDFqjg9-ouh*)0~SR`!I00000NkvXXu0mjfZm5^s literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_sort_ascending_24.png b/gtk/stock-icons/stock_sort_ascending_24.png new file mode 100644 index 0000000000000000000000000000000000000000..5b9e630448a42862ac6f11cb8234d805b0796c98 GIT binary patch literal 353 zcmV-n0iOPeP)7_SA4 zEls@)39+#ZfByYt;N{?BVEFfs;o{z#4EOFnLU%1A1A$zO5Bv{{_WM6?*R20GPUd(c z5ufV`S`wESLNmjW4WP(yO41=NgDFqjg9-ouh*)0~SR`!I00000NkvXXu0mjfZm5^s literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_sort_descending.png b/gtk/stock-icons/stock_sort_descending.png new file mode 100644 index 0000000000000000000000000000000000000000..37abbf64cd03ce15d35d773463fa49c72ee303f0 GIT binary patch literal 371 zcmV-(0gV2MP)fB$9p&q$OR{~2&6Sq75AfgHesU-}<0X5jTEejofJ$^!C& z=-==g1)jkBnl5Ki|JHF!Ay-JpJ*HVaqobhId~+!d#1NIJyt;W*iik zS*z*&zt&at-$+Igm+R2Q@kTaQOYF5w@oD;x1Cs>)6Obe5140Rrk{WNA001vqU`SCQ R+m!$S002ovPDHLkV1j&|q{9FJ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_sort_descending_16.png b/gtk/stock-icons/stock_sort_descending_16.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb9c0b8dab4f5e3ae5faf0c30ce686c5e279f5d GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^d_XL~!3HGNrubO_DYhhUcNd2LAh=-f^2tDv$DS^Z zAr-fhQxxR>xF;DKDRTaM{`~px^@~@3l=l_fq~<0ezii^e!^in~e*3*k`tV`9>Z!0D z$M)CP8^lyqOni9q_3g>FMdIkUguSq;w=8 zGWt-#fB$9p&q$OR{~2&6Sq75AfgHesU-}<0X5jTEejofJ$^!C& z=-==g1)jkBnl5Ki|JHF!Ay-JpJ*HVaqobhId~+!d#1NIJyt;W*iik zS*z*&zt&at-$+Igm+R2Q@kTaQOYF5w@oD;x1Cs>)6Obe5140Rrk{WNA001vqU`SCQ R+m!$S002ovPDHLkV1j&|q{9FJ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_spellcheck.png b/gtk/stock-icons/stock_spellcheck.png new file mode 100644 index 0000000000000000000000000000000000000000..8093dcdbe830f51c0bc017451fedfbb4612cc5a4 GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZTdiPZ!6K zid%0d8wxcU2)N3hl9Y+=Ph1`%Ci3NF?hcl{=^MYfox7nS*2j9{mXVK`(}aml_f>A* z{aOECtx@v7TSBL&vbxvaEd?tCPTw<4bG@PX=+fISGFv#=w}uu!Ej6!IQ%Dw!DDK|J z)&7`|d*Yk3-^!CaF0Z(k``P9UqeEoK3>`*+$*OxkZI60geOYL^;Onzp$KRg(SrWK& zj|@Xi7gxh?)9*_QiZ1@t*(=MS<9xl|>cG(#T*k}#_2;uX^cSkz_yPUkS``ve5}cn_ zQl40p%D_-@tN22|wJ&FUef+=r`kePU7iMtL_=0iZhAkJ&4KA7+gm~zk($QO4qOtCb zu7}P^pL5qw>wB>?)MWAhtoSB!2xy=&*uc#6yu^}Hh>6C&-rm~`e7AY{dYPJedmEZ~ p7A* z{aOECtx@v7TSBL&vbxvaEd?tCPTw<4bG@PX=+fISGFv#=w}uu!Ej6!IQ%Dw!DDK|J z)&7`|d*Yk3-^!CaF0Z(k``P9UqeEoK3>`*+$*OxkZI60geOYL^;Onzp$KRg(SrWK& zj|@Xi7gxh?)9*_QiZ1@t*(=MS<9xl|>cG(#T*k}#_2;uX^cSkz_yPUkS``ve5}cn_ zQl40p%D_-@tN22|wJ&FUef+=r`kePU7iMtL_=0iZhAkJ&4KA7+gm~zk($QO4qOtCb zu7}P^pL5qw>wB>?)MWAhtoSB!2xy=&*uc#6yu^}Hh>6C&-rm~`e7AY{dYPJedmEZ~ p7pVNRKWP?m8Ll2|i2mnVhpq63#BV-7I zB8X>l^5eoHpG@+}R3h*`I5KMJx!X*TZ8Wnd1rkoXUC3sCNYb~WSmyX0jw@|$N^9%l zGCN~1-0$qXBv;gj0Ma02*M64E-zBMBD3tO!*zJ7&^ZGg;jpcoTagFARq87L@ zH@yC>rEqFy?$i8Y!sTY|BVnV-@!;WL_su$Uc5|8_o&EX`RvSC!U`JoW=a+3ZIK=zd zFx@|3x^-LEbsfH}J_OTD5Umt7rqzaC8iPYaKEo47Z|~C^-P(@MHi~WndsF_JMx3Fj za}3kY$S=#Qh06YjgZ!`j1|$6lVI^G#lK=n!MS4_NbW?9;ba!ELWdHzp+H=rQ*7VFx zOi%SqOwUZtRxr^s&@)l6w9q#&(Kj$uNG{4OE~#`VuFNe+EXhpH*UK+T2LOC(5BYfZ z6v6-i05f`2SaefqXKrD1b#i3@0C?K7OfoP{G)hTLvq&{EFf=zzGfYjhv@|eHO-?g4 cNli-y0F}`RTZi}5CjbBd07*qoM6N<$f+CQD&Hw-a literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_stop_24.png b/gtk/stock-icons/stock_stop_24.png new file mode 100644 index 0000000000000000000000000000000000000000..b0921187db9d05061a9c6479639147ecfe9cfa13 GIT binary patch literal 850 zcmV-Y1FigtP)pVNRKWP?m8Ll2|i2mnVhpq63#BV-7I zB8X>l^5eoHpG@+}R3h*`I5KMJx!X*TZ8Wnd1rkoXUC3sCNYb~WSmyX0jw@|$N^9%l zGCN~1-0$qXBv;gj0Ma02*M64E-zBMBD3tO!*zJ7&^ZGg;jpcoTagFARq87L@ zH@yC>rEqFy?$i8Y!sTY|BVnV-@!;WL_su$Uc5|8_o&EX`RvSC!U`JoW=a+3ZIK=zd zFx@|3x^-LEbsfH}J_OTD5Umt7rqzaC8iPYaKEo47Z|~C^-P(@MHi~WndsF_JMx3Fj za}3kY$S=#Qh06YjgZ!`j1|$6lVI^G#lK=n!MS4_NbW?9;ba!ELWdHzp+H=rQ*7VFx zOi%SqOwUZtRxr^s&@)l6w9q#&(Kj$uNG{4OE~#`VuFNe+EXhpH*UK+T2LOC(5BYfZ z6v6-i05f`2SaefqXKrD1b#i3@0C?K7OfoP{G)hTLvq&{EFf=zzGfYjhv@|eHO-?g4 cNli-y0F}`RTZi}5CjbBd07*qoM6N<$f+CQD&Hw-a literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_text_bold.png b/gtk/stock-icons/stock_text_bold.png new file mode 100644 index 0000000000000000000000000000000000000000..1319debc5e20dd0b05e07eef86fee3dd354bd900 GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJbOF! z$q5py&5Q;~9ewiZ29Q`*OzD$N#IZ&v~D7 zVFnkCFBk`I*mA+#;G(%fh=<-O9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}uF! z$q5py&5Q;~9ewiZ29Q`*OzD$N#IZ&v~D7 zVFnkCFBk`I*mA+#;G(%fh=<-O9lez$8tcyJdgz?=Id}cEz85<~O&0&pifODrjcm}uF! z$q5py&5Q<*1pfDX^D6r-{+B#GUFm9FjMTr!M$GehdyZuP=)Wy;$IL)zJ!AjR8PEP4 zS2pL$U}wml&nDoXF?SKrB-g5th?3y^w370~qErTkid)4O012=5BU~X{H+#tk5@05<-$`XxrXLLPuPWqg?ep=s)ouMX+|7XQFkwZWOjll+H zrspM=ltN7O_VYG2G&k91;BV|@>f>u{>}R;u#KX_e$j{7p+ZGQ)CWh&boD5pF$^U@b O89ZJ6T-G@yGywn(IbbRP literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_text_italic_24.png b/gtk/stock-icons/stock_text_italic_24.png new file mode 100644 index 0000000000000000000000000000000000000000..271233785fac21bc7b52d78101a79770fcafaafd GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJUdSp$B>F! z$q5py&5Q<*1pfDX^D6r-{+B#GUFm9FjMTr!M$GehdyZuP=)Wy;$IL)zJ!AjR8PEP4 zS2pL$U}wml&nDoXF?SKrB-g5th?3y^w370~qErTkid)4O012=5BU~X{H+#tk5@05<-$`XxrXLLPuPWqg?ep=s)ouMX+|7XQFkwZWOjll+H zrspM=ltN7O_VYG2G&k91;BV|@>f>u{>}R;u#KX_e$j{7p+ZGQ)CWh&boD5pF$^U@b O89ZJ6T-G@yGywn(IbbRP literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_text_strikeout.png b/gtk/stock-icons/stock_text_strikeout.png new file mode 100644 index 0000000000000000000000000000000000000000..9a9a3731da870083407dae838540b36fb64791a2 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U0`f}SppAr-fh z6C_xh84Z#IfAdfO-LHARDb!NA%T45f%c8dtEdL*e_2_+^-^dYa;d>}mSeUQXqW93V z%sYO`2gKG)_@MseL7+n{1A|*Fm+*dzbGATJU8_PON`mv#O3D+9QW+R3ZWUh$xc23Y zuaEy%U!U_n=fVsw8ecFD+_2?>xxqzqgAfnBQ#yJpOElJ<(e=2vP-X?-tthMFw? zpB3Lk4gn1`1{;`}o|jls3Ng{!&(Fxj%W#vAslT6@myypV1M|%uzCJ!)KE7K`w)t#k ZVOVgKb7#}mSeUQXqW93V z%sYO`2gKG)_@MseL7+n{1A|*Fm+*dzbGATJU8_PON`mv#O3D+9QW+R3ZWUh$xc23Y zuaEy%U!U_n=fVsw8ecFD+_2?>xxqzqgAfnBQ#yJpOElJ<(e=2vP-X?-tthMFw? zpB3Lk4gn1`1{;`}o|jls3Ng{!&(Fxj%W#vAslT6@myypV1M|%uzCJ!)KE7K`w)t#k ZVOVgKb7#}mSeUQXqW93V z%sYO`2gKG)_@MseL7+n{1A|*Fm+*dzbGATJU8_PON`mv#O3D+9QW+R3ZWUh$xc23Y zuaEy%U!U_n=fVsw8ecFD+_2?>xxqzqgAfnBQ#yJpOElJ<(e=2vP-X?-tthMFw? zpB3Lk4gn1`1{;`}o|jls3Ng{!&(Fxj%W#vAslT6@myypV1M|%uzCJ!)KE7K`w)t#k ZVOVgKb7#F! z$q5py&5Q;~9e>;>{p@$zxHgh(h5w2As5hcO-X(i=}MX3x76}O5n1YG-a#@EOHtFO;_pL1ab7mY6%2X5GM z!Q9}Yxj~4B-YFful_eVM&ggpRob)+&{j|OpJ3~zt|IdnVB8Pwm8iNhYOwUU!DTSD5 zZ0=)b=5OS=#lXbCz}wW^)O(wUiMf}tsmTT(vyB^kSQy$8In3U=&PfJpXYh3Ob6Mw< G&;$S;4_qz) literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_text_underline_24.png b/gtk/stock-icons/stock_text_underline_24.png new file mode 100644 index 0000000000000000000000000000000000000000..35f5c1fe939639803470c5b3eb5999864ced22cc GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877lys^v2U1xJabPM$B>F! z$q5py&5Q;~9e>;>{p@$zxHgh(h5w2As5hcO-X(i=}MX3x76}O5n1YG-a#@EOHtFO;_pL1ab7mY6%2X5GM z!Q9}Yxj~4B-YFful_eVM&ggpRob)+&{j|OpJ3~zt|IdnVB8Pwm8iNhYOwUU!DTSD5 zZ0=)b=5OS=#lXbCz}wW^)O(wUiMf}tsmTT(vyB^kSQy$8In3U=&PfJpXYh3Ob6Mw< G&;$S;4_qz) literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_top.png b/gtk/stock-icons/stock_top.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebb6c88a8297e875f2b16fbf506f4eeb30162b4 GIT binary patch literal 455 zcmV;&0XY7NP)K$grY2H+jjH>{^9VDJmy?37u|9S!k x@Amsb6=-2TpR>3~?Cri-srS$SgKPYMdK$grY2H+jjH>{^9VDJmy?37u|9S!k x@Amsb6=-2TpR>3~?Cri-srS$SgKPYMdxmkT=*S4R>lTUg7?gNcYah3}uZjO$iL?cSjT668v^}3Ll zUoe$UF?iw(qBPljhEu2eIXQS7l%Tb$G8e4_OXLg4mKK@&GDo7Lo374-q%#&@mohcx z3#A;%&zY?Q7UxsUuG#b?4&k~AfI=w`K)JYzU0%no*c88&ah>mfbqd5ZP0n3COQl!= zU~ScAz2dO4T&BTjpqO7Fo62EXR$!B3^%6tF15DkU4*a{Jivw7r*49h(TX!Gc;rY}v z`uh5relnGMejw%WIybaya_S6pnIOL8Q*dhd}zVRUtJWdHzp+Dl3^Nli5{Hcd7$OEEGwHcB=( mPBk<$Gfy-zNis7|Nd*9sPzb%u?((z%0000xmkT=*S4R>lTUg7?gNcYah3}uZjO$iL?cSjT668v^}3Ll zUoe$UF?iw(qBPljhEu2eIXQS7l%Tb$G8e4_OXLg4mKK@&GDo7Lo374-q%#&@mohcx z3#A;%&zY?Q7UxsUuG#b?4&k~AfI=w`K)JYzU0%no*c88&ah>mfbqd5ZP0n3COQl!= zU~ScAz2dO4T&BTjpqO7Fo62EXR$!B3^%6tF15DkU4*a{Jivw7r*49h(TX!Gc;rY}v z`uh5relnGMejw%WIybaya_S6pnIOL8Q*dhd}zVRUtJWdHzp+Dl3^Nli5{Hcd7$OEEGwHcB=( mPBk<$Gfy-zNis7|Nd*9sPzb%u?((z%0000;G7)C)lI*0NOo(-kPce0ZhV*i>4fnL#7;cfRj znMkg91Ppw(0Fb|KB>3~>)EqmcJJWRCks8xVZZH_4RfIwzjZ@DtolC*E zp4ntc31mVzsp~c*mM9Lu*{1UV^mg|}WJ#T%XtN2o#~J-L=H<|Or42<<=DQ z^(D03zf10tEM7c)P4$ue2%&PcsyUKcTB3O(&)qzUs;Y>vIw!P0zIEidG|Rbh0@8UsG!buiR#)zRdC%>HedzNsK< z3f2-1&y4PI?@XWko=JlKX@Y?u9=D%x=vPdJdQ6&3Cid3vBH#%CFf|!uIuOD);U~k8 zfye2?HtaxAl%!3LYbKK^;SEp}C5rn8{Er(r*6-#q0000*dQ@0+Q*UN;cVTj6004N} zbI?%M^vq36PxVbq&rHr%Fwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I%P&d? z0DNi>`FQpe!T?(ZeetFa%BJjc-k{JHZn>wOiDF3O0qCdOER!DOHQ`5 ju&^{UwKPpNF-QUci{}V-u__W}00000NkvXXu0mjfhF*z@ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_undelete_24.png b/gtk/stock-icons/stock_undelete_24.png new file mode 100644 index 0000000000000000000000000000000000000000..faff910342561fee53dc417f8499d153b8b22339 GIT binary patch literal 857 zcmV-f1E&0mP);G7)C)lI*0NOo(-kPce0ZhV*i>4fnL#7;cfRj znMkg91Ppw(0Fb|KB>3~>)EqmcJJWRCks8xVZZH_4RfIwzjZ@DtolC*E zp4ntc31mVzsp~c*mM9Lu*{1UV^mg|}WJ#T%XtN2o#~J-L=H<|Or42<<=DQ z^(D03zf10tEM7c)P4$ue2%&PcsyUKcTB3O(&)qzUs;Y>vIw!P0zIEidG|Rbh0@8UsG!buiR#)zRdC%>HedzNsK< z3f2-1&y4PI?@XWko=JlKX@Y?u9=D%x=vPdJdQ6&3Cid3vBH#%CFf|!uIuOD);U~k8 zfye2?HtaxAl%!3LYbKK^;SEp}C5rn8{Er(r*6-#q0000*dQ@0+Q*UN;cVTj6004N} zbI?%M^vq36PxVbq&rHr%Fwry6Gf}X#&^IvAH!xI4F3Kz}sdOl=%q>VP$xP1I%P&d? z0DNi>`FQpe!T?(ZeetFa%BJjc-k{JHZn>wOiDF3O0qCdOER!DOHQ`5 ju&^{UwKPpNF-QUci{}V-u__W}00000NkvXXu0mjfhF*z@ literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_undo.png b/gtk/stock-icons/stock_undo.png new file mode 100644 index 0000000000000000000000000000000000000000..601a1fa4f4f4385aa10bdfd3accf0213bbc8916c GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjY)RhkE)07?Fw^Pk3ZO`fr;B4q z#jWH73D(68aS!ZwO3lp3v@jI=^S*pqa>j;pJZkg1HvH$nq@Of0faVE>jeFrl+#hU*e&)^O| z%QQn(BI(MumWcZc8ImTwY+#zjeqKX@^)Mp?!!dPz$1l5C-T~d?S``ve5}cn_Ql40p z%D_-@tN22|wJ&FUef+=r`kePU7iMtL_=0iZhAkJ&4KA7+gm~zk($QO4qOtCbu7}P^ zpL5qw>wB>?)MWAhtoSB!2xy=&*uc#6yu^}Hh>4p`Og8)Ynt1to`*@jnZ1OQN_1oy< lx6Q}Q#BiI(HV-d0hBj;pJZkg1HvH$nq@Of0faVE>jeFrl+#hU*e&)^O| z%QQn(BI(MumWcZc8ImTwY+#zjeqKX@^)Mp?!!dPz$1l5C-T~d?S``ve5}cn_Ql40p z%D_-@tN22|wJ&FUef+=r`kePU7iMtL_=0iZhAkJ&4KA7+gm~zk($QO4qOtCbu7}P^ zpL5qw>wB>?)MWAhtoSB!2xy=&*uc#6yu^}Hh>4p`Og8)Ynt1to`*@jnZ1OQN_1oy< lx6Q}Q#BiI(HV-d0hBWAMrkLe6~;1S!7KXIp@e@L_`TbW4pK0s(}p$1AG<;E-9ZemZhv;z+k1*VY9pSD+3#kMmWt7RYZi85@z;RF45iCW-nrkq9p5UC4=aG~W zbxL^25mBnT!brqCpFhLz(%;-(qoSw^stz*)gzLNh$4;w_$WAMrkLe6~;1S!7KXIp@e@L_`TbW4pK0s(}p$1AG<;E-9ZemZhv;z+k1*VY9pSD+3#kMmWt7RYZi85@z;RF45iCW-nrkq9p5UC4=aG~W zbxL^25mBnT!brqCpFhLz(%;-(qoSw^stz*)gzLNh$4;w_$9e40*VicMGIO?1GT6Xi$aN_X_hX! z6$HNL|0cAet$ih2Bv9H zCDzBoPnoIj>nIp>mHOU5(qR{0x1RIa5K%#5rh!5w;#6lgpf!n=tBb&X4VHk{#W-6*H z0YafBM}Sp<*Q?|8dVm7?{DLL;^=knk3=Cs&X}G4XqVnLYR*=ih0bm#g`F!3IEH38R zySImf2jf=H?G*@SW^&a5yWV&Yjjwc^KCPAGuE!2x=EW0sK+rp>st?74>z$H`=FR|Qy*p`j$v zXq&5P8T{(iTZV^IPJXK<6hMFfDSCRkT_KMiO;{&y*|LGc!dIrht@L!fu6OL%&Y?s5 z*txTXP^b|pB{MT~ym|AUZ1y>yK7F>#AKywbdOgLBkrX%I!B0{BJ)vq{;UFrV>{GKZ z?y7XMPn~Q-1%1m`hSvdL8@|gvUw)#lq)T%+(%V-`j-$wj-U^9qIG#D)c)t;uR?``sLoy6 b6rg?swnWtan@^+!00000NkvXXu0mjf4mFps literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_1_24.png b/gtk/stock-icons/stock_zoom_1_24.png new file mode 100644 index 0000000000000000000000000000000000000000..10507a8d9896a95b149fdcc1ed5ae9b186ba123f GIT binary patch literal 849 zcmV-X1FrmuP)9e40*VicMGIO?1GT6Xi$aN_X_hX! z6$HNL|0cAet$ih2Bv9H zCDzBoPnoIj>nIp>mHOU5(qR{0x1RIa5K%#5rh!5w;#6lgpf!n=tBb&X4VHk{#W-6*H z0YafBM}Sp<*Q?|8dVm7?{DLL;^=knk3=Cs&X}G4XqVnLYR*=ih0bm#g`F!3IEH38R zySImf2jf=H?G*@SW^&a5yWV&Yjjwc^KCPAGuE!2x=EW0sK+rp>st?74>z$H`=FR|Qy*p`j$v zXq&5P8T{(iTZV^IPJXK<6hMFfDSCRkT_KMiO;{&y*|LGc!dIrht@L!fu6OL%&Y?s5 z*txTXP^b|pB{MT~ym|AUZ1y>yK7F>#AKywbdOgLBkrX%I!B0{BJ)vq{;UFrV>{GKZ z?y7XMPn~Q-1%1m`hSvdL8@|gvUw)#lq)T%+(%V-`j-$wj-U^9qIG#D)c)t;uR?``sLoy6 b6rg?swnWtan@^+!00000NkvXXu0mjf4mFps literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_fit.png b/gtk/stock-icons/stock_zoom_fit.png new file mode 100644 index 0000000000000000000000000000000000000000..26b089cff4d6a88f86ef195fc03bed9b9bce5234 GIT binary patch literal 857 zcmV-f1E&0mP)GG>VeO=QA)(6Rq=z2$wF65sQs9gcw_sClWu? z)6+vB@BxMaj$@O{DIkyI2uj(AIEV3M5w!&%bx+^|_U-$q2yjTJ{~@2(yneloWm!dtou7~uDt`29X0 zM>hKg$8ivGitVwnZL2tUs*)G>h$p}`Ih|fB_TA>dfo?iF!ep}FIlj6wEA}Y*kb)?x^%YDdF+s=XG0T0Q$<68$_dDAW}|n^yrrW z+`O4UL>L(Ort0NFK@O?Z{gPDkvAHLho115J^lBAgYo*)ilaqH?Tzu(yf|{#hWF*Fs zBV9E{Rz8=Eo}Yip#fx#TeA@~dU})$&PM++o3z?cqkxc#qK>OZZ|;#?n#bK@Cos>Z()y4led zL?>c{dgbp4orn$Uue;E}mhzS1_W&3bpt|0zZlXsM1s^^i7%YfmaV|eX1BMr%UJGmX z{QfUGI93f=SdVk}CE9EvLBo(7KP_zVBP$PSF$<8k9gzIv;rmEmj$jMAzq9NK&Hs6L jtI%yh^rs*1*MR;XbfxtB%EB=I00000NkvXXu0mjfd^ewo literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_fit_24.png b/gtk/stock-icons/stock_zoom_fit_24.png new file mode 100644 index 0000000000000000000000000000000000000000..26b089cff4d6a88f86ef195fc03bed9b9bce5234 GIT binary patch literal 857 zcmV-f1E&0mP)GG>VeO=QA)(6Rq=z2$wF65sQs9gcw_sClWu? z)6+vB@BxMaj$@O{DIkyI2uj(AIEV3M5w!&%bx+^|_U-$q2yjTJ{~@2(yneloWm!dtou7~uDt`29X0 zM>hKg$8ivGitVwnZL2tUs*)G>h$p}`Ih|fB_TA>dfo?iF!ep}FIlj6wEA}Y*kb)?x^%YDdF+s=XG0T0Q$<68$_dDAW}|n^yrrW z+`O4UL>L(Ort0NFK@O?Z{gPDkvAHLho115J^lBAgYo*)ilaqH?Tzu(yf|{#hWF*Fs zBV9E{Rz8=Eo}Yip#fx#TeA@~dU})$&PM++o3z?cqkxc#qK>OZZ|;#?n#bK@Cos>Z()y4led zL?>c{dgbp4orn$Uue;E}mhzS1_W&3bpt|0zZlXsM1s^^i7%YfmaV|eX1BMr%UJGmX z{QfUGI93f=SdVk}CE9EvLBo(7KP_zVBP$PSF$<8k9gzIv;rmEmj$jMAzq9NK&Hs6L jtI%yh^rs*1*MR;XbfxtB%EB=I00000NkvXXu0mjfd^ewo literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_in.png b/gtk/stock-icons/stock_zoom_in.png new file mode 100644 index 0000000000000000000000000000000000000000..3a18e6346da4a895bc15bf31c03479af3de37df8 GIT binary patch literal 821 zcmV-51Iqk~P)9a*}`qm zN^l+YF$-P!7f7@j$G}GD3)@tvq-KqWNARMlzqobY1#xPY?2heq$L}G=RnOWlTC(O=% zDhQ(OCf?U~i_Xr==(?6FDLftxUDr`6iIkGT!C@ki{=5)vyLc>im*(bX{Qf;?8knYm zWeFgOX-b4JkkUj-$;8AI-Q71_A)ajU-rk#>JJ&>M>3+(}%GtLsNJ&X4p->&6P(4zb z2q6(dAcUZy;RHQB*Ij)}0|ghoHlI4xmh*dL-7K@g@!$mZG2upBC*PmBLNJo^Ul8fT^iBsl62l zVPF`WTbWt0%sQqSqvz+px&kzS2M-?SobhadbY!nOW42^^`fa*J+YJD~`}cDU4UOao zYzJ%y3n3XBn`CKe*>Qp$S4Dq+gocLtZL7`Q^Yjs&oBPbbK-5WZ*Mb7*?!HD_TdON% ze0-XC{3!s{p$e?uKUrMcsp)uKA3JuGmX@>B)Kn7;mZnb2Dhmr=nVEUFwJp`53SK>l z^88_xN5fGbe}Q$8|2v@y&B_2O7U@zeAD*dLq)T0`M+JPDE5qvm(6T_T-u+ld4aIC9 zE?nudi^Eawe?kG86Toc?cl5mYh6)VlLKfGeyk17>1qkE~X>n)q7q?mYh)=g6m3txn z^5g%I&qTn7x?G#_gu?$k{8gyR0P1wzVFjo^l+yBf6@IA(00000NkvXXu0mjfrD1y? literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_in_24.png b/gtk/stock-icons/stock_zoom_in_24.png new file mode 100644 index 0000000000000000000000000000000000000000..3a18e6346da4a895bc15bf31c03479af3de37df8 GIT binary patch literal 821 zcmV-51Iqk~P)9a*}`qm zN^l+YF$-P!7f7@j$G}GD3)@tvq-KqWNARMlzqobY1#xPY?2heq$L}G=RnOWlTC(O=% zDhQ(OCf?U~i_Xr==(?6FDLftxUDr`6iIkGT!C@ki{=5)vyLc>im*(bX{Qf;?8knYm zWeFgOX-b4JkkUj-$;8AI-Q71_A)ajU-rk#>JJ&>M>3+(}%GtLsNJ&X4p->&6P(4zb z2q6(dAcUZy;RHQB*Ij)}0|ghoHlI4xmh*dL-7K@g@!$mZG2upBC*PmBLNJo^Ul8fT^iBsl62l zVPF`WTbWt0%sQqSqvz+px&kzS2M-?SobhadbY!nOW42^^`fa*J+YJD~`}cDU4UOao zYzJ%y3n3XBn`CKe*>Qp$S4Dq+gocLtZL7`Q^Yjs&oBPbbK-5WZ*Mb7*?!HD_TdON% ze0-XC{3!s{p$e?uKUrMcsp)uKA3JuGmX@>B)Kn7;mZnb2Dhmr=nVEUFwJp`53SK>l z^88_xN5fGbe}Q$8|2v@y&B_2O7U@zeAD*dLq)T0`M+JPDE5qvm(6T_T-u+ld4aIC9 zE?nudi^Eawe?kG86Toc?cl5mYh6)VlLKfGeyk17>1qkE~X>n)q7q?mYh)=g6m3txn z^5g%I&qTn7x?G#_gu?$k{8gyR0P1wzVFjo^l+yBf6@IA(00000NkvXXu0mjfrD1y? literal 0 HcmV?d00001 diff --git a/gtk/stock-icons/stock_zoom_out.png b/gtk/stock-icons/stock_zoom_out.png new file mode 100644 index 0000000000000000000000000000000000000000..f398bbcd75db04f3381fa19cbc95e8ec0eee999f GIT binary patch literal 814 zcmV+}1JV46P)-*;S~0D{4GB9R`#;ULY;`_OfrOlFzM$thB)r%X-F zRt3>^62Eij2GM9Qx~>&U3YSYm*L9T2A*JNOgCw!oU`2?wRXmZnM^{%DKHn}h4NTL( zvILOBG$le9NNFOaWNd7l{{Cx@5Lc=A?c3Ms=;)-bZZGxq4eZ$yptiOSpRX3BG^8{U zLL!7f2tg=xf`Ngnj=mKE1cS$kMla&?`S5yc@Oo?Tczk#~UH~l1#5D6Mr7WbNr{^qf zZ7sGQxQgURtwU*7>0om0x3lSy4i_S2OEHc2lp2MCJhbER1+g3_mNT(2-H^wxZOH# zw+pbU5(f$$<&Cch$YfSHeAtg+7^Ks0%gi*4;%JKImKrTtTFN+@48ZvK`w~M93?sXd z`C6&D<-b3F{^khK0EUO3l%4UdC#AdtSz@+iV&X$lPqXb{dU}qbp^-9y@?FavI+477 z{g#D=McWRxT@{0aF+!pCExRqBdGUzO&3)nS-MF3Jjs*qK-+zVk=er#tqoWg~QqKTr zInapp`zQ0O+cj;k>!U}HaOTWuT3cHP1nLT>WrcM58)E@oOg>Ty$XSfAuVpr|KcXgGkEnpq-i&#Ud{Xu`OWZq sQN3-Oo>2XthrbHd-*;S~0D{4GB9R`#;ULY;`_OfrOlFzM$thB)r%X-F zRt3>^62Eij2GM9Qx~>&U3YSYm*L9T2A*JNOgCw!oU`2?wRXmZnM^{%DKHn}h4NTL( zvILOBG$le9NNFOaWNd7l{{Cx@5Lc=A?c3Ms=;)-bZZGxq4eZ$yptiOSpRX3BG^8{U zLL!7f2tg=xf`Ngnj=mKE1cS$kMla&?`S5yc@Oo?Tczk#~UH~l1#5D6Mr7WbNr{^qf zZ7sGQxQgURtwU*7>0om0x3lSy4i_S2OEHc2lp2MCJhbER1+g3_mNT(2-H^wxZOH# zw+pbU5(f$$<&Cch$YfSHeAtg+7^Ks0%gi*4;%JKImKrTtTFN+@48ZvK`w~M93?sXd z`C6&D<-b3F{^khK0EUO3l%4UdC#AdtSz@+iV&X$lPqXb{dU}qbp^-9y@?FavI+477 z{g#D=McWRxT@{0aF+!pCExRqBdGUzO&3)nS-MF3Jjs*qK-+zVk=er#tqoWg~QqKTr zInapp`zQ0O+cj;k>!U}HaOTWuT3cHP1nLT>WrcM58)E@oOg>Ty$XSfAuVpr|KcXgGkEnpq-i&#Ud{Xu`OWZq sQN3-Oo>2XthrbHd